C Shell 参数 If Else 循环

C Shell 参数 If Else 循环

我正在编写一个脚本,如果在脚本后输入一个或多个参数,它将显示它们。如果未输入任何参数,则会显示“请输入一个或多个参数”。

由于某种原因,我的脚本将执行第一个任务,但不会执行脚本中的 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

相关内容