从 ssh 命令退出代码
exit code from ssh command
我正在尝试从此脚本中检索代码 return:
#!/bin/bash
echo "CM 1"
ssh -i key/keyId.ppk user@X.X.X.X "
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
"
echo $?
但是最后一个命令echo $?
returns 0 而不是1.
如果尝试 运行 单独(不是作为脚本):
- ssh 命令:
ssh -i key/keyId.ppk user@X.X.X.X
- grep blabla ddd => 我收到消息 "grep: ddd: No such file or directory"
- 那么:如果[! $? -eq 0 ];然后退出 1; fi
- 然后:回显 $? => 它 returns 1 符合预期
你知道为什么它在我的脚本中不起作用吗?
谢谢
这个代码
ssh -i key/keyId.ppk user@X.X.X.X "
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
"
在您的 shell 中评估 $?
而不是在远程的 shell 中,因为 $
未在单引号中转义。您应该避免这种情况以达到所需的行为。一次是为了避免在本地 shell 中进行评估,第二次是为了避免在将其传递到远程端的 bash 时进行评估。或者更确切地说,将命令放入单引号中:
ssh -i key/keyId.ppk user@X.X.X.X '
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
'
我正在尝试从此脚本中检索代码 return:
#!/bin/bash
echo "CM 1"
ssh -i key/keyId.ppk user@X.X.X.X "
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
"
echo $?
但是最后一个命令echo $?
returns 0 而不是1.
如果尝试 运行 单独(不是作为脚本):
- ssh 命令:
ssh -i key/keyId.ppk user@X.X.X.X
- grep blabla ddd => 我收到消息 "grep: ddd: No such file or directory"
- 那么:如果[! $? -eq 0 ];然后退出 1; fi
- 然后:回显 $? => 它 returns 1 符合预期
你知道为什么它在我的脚本中不起作用吗?
谢谢
这个代码
ssh -i key/keyId.ppk user@X.X.X.X "
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
"
在您的 shell 中评估 $?
而不是在远程的 shell 中,因为 $
未在单引号中转义。您应该避免这种情况以达到所需的行为。一次是为了避免在本地 shell 中进行评估,第二次是为了避免在将其传递到远程端的 bash 时进行评估。或者更确切地说,将命令放入单引号中:
ssh -i key/keyId.ppk user@X.X.X.X '
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
'