我正在编写一个脚本,如果在脚本后输入一个或多个参数,它将显示它们。如果未输入任何参数,则会显示“请输入一个或多个参数”。
由于某种原因,我的脚本将执行第一个任务,但不会执行脚本中的 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