스크립트 뒤에 하나 이상의 매개변수를 입력하면 해당 매개변수가 표시되는 스크립트를 작성 중입니다. 매개변수를 입력하지 않은 경우 "하나 이상의 매개변수를 입력하십시오"가 표시됩니다.
어떤 이유로 내 스크립트는 첫 번째 작업을 실행하지만 스크립트의 0 매개변수 작업은 실행하지 않습니다. 내가 뭘 잘못했나요? 이것은 단지 논리적 오류일까요?
foreach arg ( $* )
if ( $#arg == 0 ) then
echo "Please enter one or more arguments."
else if ( $#arg > 0 ) then
echo "Found argument = $arg"
endif
end
답변1
스크립트에 매개변수가 없으면 $*가 아무 것과도 같지 않기 때문에 아무 작업도 수행되지 않습니다.
귀하의 스크립트는 실제로 다음과 같습니다.
foreach arg ( )
echo "Nothing to see here"
end
무엇이 더 합리적일까요?
# check how many arguments passed to script
if ( $#argv == 0 ) then
echo "Please enter one or more arguments."
exit 1
endif
foreach arg ( $* )
echo "Found argument = $arg"
end