我试图从此脚本中检索代码返回:
#!/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 $?
返回0而不是1。
如果尝试单独运行(不是作为脚本):
ssh -i key/keyId.ppk user@X.X.X.X
你知道为什么它在我的脚本中不起作用吗?
谢谢
答案 0 :(得分:1)
此代码
ssh -i key/keyId.ppk user@X.X.X.X "
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
"
评估您的shell中的$?
而不是远程评估中的$
,因为ssh -i key/keyId.ppk user@X.X.X.X '
grep blabla ddd
if [ ! $? -eq 0 ]; then exit 1; fi
'
未在单引号中转义。你应该逃避它以达到预期的行为。一次避免在本地shell中进行评估,第二次避免在将其传递给远程端的bash时进行评估。或者更确切地说将命令放在单引号中:
var defText = ''+
' <div class="form-group col-md-12">'+
' <h4 id="minimum-setp">{{title}}</h4>'+
' <input type="text" class="form-control gcf_crud" id="txtUsuari" value="{{data}}"/>'+
' </div>';
var defTextDisabled = $(defText).find('.gcf_crud').prop('disabled', true);