
이것은 인수 수와 파일/디렉토리 존재 여부를 확인하는 C 쉘 스크립트입니다. 매개변수가 유효하면 마지막 else 문으로 이동하여 "hi"를 인쇄해야 하지만 올바른 매개변수를 사용하여 이 스크립트를 실행하면 아무 것도 인쇄되지 않습니다. (그러나 종료 상태는 0입니다.)
잘못된 매개 변수가 있으면 다른 모든 것이 잘 작동합니다.
if ($#argv != 2) then
echo "Two arguments required"
else
if (! -f $argv[1]) then
echo "File does not exist"
exit 1
else
if (! -d $argv[2]) then
echo "Not a valid directory"
exit 2
endif
endif
else
echo "hi"
endif
어쩌면 내 구문이 잘못되었을 수도 있나요? 어떤 아이디어가 있나요?
답변1
else
else
이미 이 케이스가 있으므로 이 케이스에 문의할 수 없습니다 if
. 달성하려는 작업은 다음을 통해 수행할 수 있습니다.
if ($#argv != 2) then
echo "Two arguments required"
exit 1
else if (! -f $argv[1]) then
echo "File does not exist"
exit 1
else if (! -d $argv[2]) then
echo "Not a valid directory"
exit 2
endif
echo "hi"