Linux

在 SSH 中使用 export 並在腳本中全域使用該值

  • March 9, 2019

當我執行以下命令時:

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

嘗試

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

甚至更短。

引用自:https://unix.stackexchange.com/questions/426957