我使用SSH Secure Shell客户端连接到服务器并运行我的脚本。
我想在某些情况下停止脚本,所以当我使用exit时,不仅脚本停止,而且所有客户端都与服务器断开连接!,这是代码:
if [[ `echo $#` -eq 0 ]]; then
echo "Missing argument- must to get a friend list";
exit
fi
for user in $*; do
if [[ !(-f `echo ${user}.user`) ]]; then
echo "The user name ${user} doesn't exist.";
exit
fi
done
客户的照片:
为什么会这样?
答案 0 :(得分:2)
使用source
运行脚本,这在当前shell中运行。这意味着exit
终止当前shell并使用ssh会话终止。
将source
替换为bash
,它应该可以使用,或者更好地放置
#!/bin/bash
打开文件并使其可执行。
答案 1 :(得分:2)
exit
从当前 shell 返回 - 如果您通过直接运行脚本启动了脚本,则会退出运行该脚本的shell。
return
从函数或源文件(TY Dennis Williamson)返回 - 同样的事情,但它不会终止您当前的shell。
break
从循环返回 - 与return
类似,但可以在循环内的任何位置使用,以停止处理更多项目。这可能就是你想要的。
答案 2 :(得分:0)
如果从当前shell运行,退出显然会从shell退出并断开连接。尝试在新shell中运行它(在脚本之前使用。)或者使用'return'而不是exit