当我运行以下命令时:
ssh -q -o BatchMode=yes -T <server> <<'EOF'
export INTIAL_COUNT=$(ps -ef|grep -v grep|grep "/bin/ksh /test/bin/worker.sh" |wc -l)
EOF
echo ${INTIAL_COUNT}
我得到的输出为空
预期输出是某个值
echo ${INTIAL_COUNT}
10
答案1
尝试
INTIAL_COUNT=$(ssh -q -o BatchMode=yes -T <server> <<'EOF'
ps -ef|grep -c "/bin/ksh /test/bin/[w]orker.sh"
EOF
)
在哪里
grep -v grep
被替换为与grep [w]
自身不匹配的grep ... | wc -l
被替换为grep -c
$( .. )
构造可以跨越线
或者
INTIAL_COUNT=$(ssh -q -o BatchMode=yes -T <server> 'ps -ef|grep -c "/bin/ksh /test/bin/[w]orker.sh"')
甚至更短。