옵션 목록에서 사용 가능한 최적의 옵션을 선택하는 쉘 스크립트가 이보다 더 깔끔한 방법으로 작성 될 수 있는지 궁금합니다.BASH를 사용하여 최상의 옵션 선택
d="least wanted directory"
dt="possible directory" && [ -d $dt ] && d=$dt
dt="preferred directory" && [ -d $dt ] && d=$dt
옵션 목록에서 사용 가능한 최적의 옵션을 선택하는 쉘 스크립트가 이보다 더 깔끔한 방법으로 작성 될 수 있는지 궁금합니다.BASH를 사용하여 최상의 옵션 선택
d="least wanted directory"
dt="possible directory" && [ -d $dt ] && d=$dt
dt="preferred directory" && [ -d $dt ] && d=$dt
이 읽을 수 (@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"
우선 순위가 우선되도록 디렉토리의 순서를 바꾸면 * dir *에 할당 된 후'break'로 루프를 단락시키고 몇 개의 반복을 저장할 수 있습니다. –
''test_dir '은 "preferred directory"에 ""possible directory ""least wanted directory "에 있습니다; 테스트해라. -d "$ test_dir"|| 잇다; dir = $ test_dir; 단절; done' – tripleee
물론, 변수를 사용하고 가능한 "goto"스타일의 문장을 선호합니다. 별도의 답변으로 게시 할 수 있습니다. – l0b0
아, 여기 사람이 보통 기타의 영리 뭔가 생각, 그래서 기다려 그게 뭔지 볼 수 있도록 할 수 있습니다. 그러나, 나는 당신의 방식이 산뜻하다고 생각합니다. – thb
나는 또한 루프를 만들 수있다 :'dt가 "least wanted"in possible preferred; do [-d $ dt] && d = $ dt; done' – vibrog
또는 '가능하다면 가장 적게 싶다'; do [-d $ dt] && d = $ dt && break; done' – vibrog