0
我想获取作为参数传递的命令的退出状态(到我的sh脚本a.sh
)。shell脚本:执行命令的退出状态不正确
我已经试过:
#!/bin/sh
CMD="[email protected]"
echo "arg passed CMD: $CMD"
($CMD) >/dev/null 2>&1
res=$?
echo "exit status: $res"
CMD="echo aaa | grep -q zzz"
echo "in script CMD: $CMD"
($CMD) >/dev/null 2>&1
res=$?
echo "exit status: $res"
一旦执行:
./a.sh 'echo aa | grep -q zzz'
arg passed CMD: echo aa | grep -q zzz
exit status: 0
in script CMD: echo aaa | grep -q zzz
exit status: 0
但是如果我直接在shell中运行命令我看到:
/bin/sh -c 'echo aa | grep -q zzz ; echo $?'
1
应该怎样我的剧本的样子像,得到正确的状态1
而不是0
的执行逗号第二?