0
何らかの理由で、スクリプトを実行するときに2番目のecho行の出力が得られません。私のコードスニペットは次のとおりです。bashスクリプトの2番目のecho文が動作しない
IS_RUNNING=$(netstat -anp | grep ":7600" | grep java | awk '{print $7}' | cut -d"/" -f 2)
start(){
nohup /bin/su -c "/opt/app/bin/service start" - user &>/dev/null &
echo "Starting Services please wait"
sleep 30
if [ "$IS_RUNNING" = java ];
then
echo "Service is now running"
exit 0
fi
}
興味深いことです。私はそれを実行すると:
sh -x ./service start
私が期待される出力を取得し、私の第二エコーが画面に書き込まれます。
+ case "$1" in
+ start
+ echo 'Starting Services please wait'
Starting Services please wait
+ sleep 30
+ nohup /bin/su -c '/opt/app/bin/service start' - user
+ '[' java = java ']'
+ echo 'Service is now running'
Service is now running
+ exit 0
のsh -xを使用しなければ、私は単純にこれを取得:
[[email protected]]# ./service start
Starting Services please wait
[[email protected]]#
私は、単純な何かを見下ろすてる感じを持っています。誰も助けることができますか?
あなたが提供したソースとは別の順番で私の出力が 'sh -x'出力ですか? –
いいえ、その画面の右側にコピーされます。 – user53029
この質問を他の人にもっと役立つように書き直せますか? 2番目のエコーがうまく動作しないbashスクリプトを使っている人は、同じ根本的な問題を抱えていないので、これに対する回答は役に立ちません。 –