我通常使用此处文档运行这样的服务器脚本。
但是,当我测试目录是否存在时,即使测试失败,脚本仍会继续 - 为什么?
ssh $user@$ip /bin/bash <<SCRIPT
if [[ ! -d ~/.debfiles ]];then
echo "Error: debfiles doesnt exist" 2> ~/error.txt
exit 1
fi
SCRIPT
我从本地计算机运行此程序,并且有问题的服务器是虚拟机。
我通常使用此处文档运行这样的服务器脚本。
但是,当我测试目录是否存在时,即使测试失败,脚本仍会继续 - 为什么?
ssh $user@$ip /bin/bash <<SCRIPT
if [[ ! -d ~/.debfiles ]];then
echo "Error: debfiles doesnt exist" 2> ~/error.txt
exit 1
fi
SCRIPT
我从本地计算机运行此程序,并且有问题的服务器是虚拟机。
正如 Kusalananda 在他的编辑中指出的那样,
<<
您所指的语法称为此处文档。正如其他评论所指出的,您的脚本的意图有些模糊,但请考虑像这样构建您的脚本:
那样:
对于像本示例一样简单的此处文档,“此处字符串”也足够了:
您正在
exit
远程服务器上运行。在那里运行的部分退出,因此ssh
结束,然后本地的其余部分继续。无论是在远程主机还是本地系统上,您都没有显示“即使测试失败仍继续”的任何部分,因此我们无法自信地测试您正在尝试的内容。