在 SSH 内使用导出并在脚本内全局使用该值

在 SSH 内使用导出并在脚本内全局使用该值

当我运行以下命令时:

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"')

甚至更短。

相关内容