2012-04-29 1 views
2

옵션 목록에서 사용 가능한 최적의 옵션을 선택하는 쉘 스크립트가 이보다 더 깔끔한 방법으로 작성 될 수 있는지 궁금합니다.BASH를 사용하여 최상의 옵션 선택

d="least wanted directory" 
dt="possible directory" && [ -d $dt ] && d=$dt 
dt="preferred directory" && [ -d $dt ] && d=$dt 
+0

아, 여기 사람이 보통 기타의 영리 뭔가 생각, 그래서 기다려 그게 뭔지 볼 수 있도록 할 수 있습니다. 그러나, 나는 당신의 방식이 산뜻하다고 생각합니다. – thb

+1

나는 또한 루프를 만들 수있다 :'dt가 "least wanted"in possible preferred; do [-d $ dt] && d = $ dt; done' – vibrog

+0

또는 '가능하다면 가장 적게 싶다'; do [-d $ dt] && d = $ dt && break; done' – vibrog

답변

1

이 읽을 수 (@CodeGnome 효율적인 감사) :

dirs=("preferred directory" "possible directory" "least wanted directory") 

for test_dir in "${dirs[@]}" 
do 
    if [ -d "$test_dir" ] 
    then 
     dir="$test_dir" 
     break 
    fi 
done 
echo "$dir" 
+1

우선 순위가 우선되도록 디렉토리의 순서를 바꾸면 * dir *에 할당 된 후'break'로 루프를 단락시키고 몇 개의 반복을 저장할 수 있습니다. –

+0

''test_dir '은 "preferred directory"에 ""possible directory ""least wanted directory "에 있습니다; 테스트해라. -d "$ test_dir"|| 잇다; dir = $ test_dir; 단절; done' – tripleee

+0

물론, 변수를 사용하고 가능한 "goto"스타일의 문장을 선호합니다. 별도의 답변으로 게시 할 수 있습니다. – l0b0