我的退出命令无法正常工作

时间:2018-05-04 01:51:51

标签: unix

我不确定我是否正确使用退出。但是当我用打印用法语句的东西执行代码时,它应该停在那里。 它应该做一个或另一个。在我的情况下,它正在做两件事。

cmd="$1" ## the command to find
if [[ $# -ne 1 ]]
        then
                echo "usage: ./findcmd command"
fi
exit=1

path=$(echo $PATH | tr ":" " ")
for dir in $path
        do
                if [[ -x "$dir/$cmd" && -r "$dir/$cmd" ]]
                        then
                                echo "$dir/$cmd"
                                exit 0
                fi
        done
echo "$cmd not on $PATH"
exit=0
  

输出:

[112] ./findcmd

用法:./ findcmd命令

/ usr / local / bin / **这不应该在这里

[113] ./findcmd ping

的/ usr / bin中/平

2 个答案:

答案 0 :(得分:0)

在dir / cmd打印后,正确使用exit来停止脚本;尝试在其他地方使用它。

请记住,您的第一个exit,一旦正确,将在循环之前停止脚本,无论是否打印使用。

答案 1 :(得分:0)

应为exit [n]

  

在脚本中,exit nnn命令可用于传递nnn   退出shell的状态(nnn必须是0 - 255中的整数   范围内)。

它应该在IF / FOR块中。

像这样:

cmd="$1" ## the command to find
if [[ $# -ne 1 ]]
    then
        echo "usage: ./findcmd command"
        exit 1
fi

## rest of code to execute if args are correct