我不确定我是否正确使用退出。但是当我用打印用法语句的东西执行代码时,它应该停在那里。 它应该做一个或另一个。在我的情况下,它正在做两件事。
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中/平
答案 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