ieでashで3つのジョブを開く
sh & sh & sh &
ieでこの仕事を数えます
jobs -p | wc -l
ショー
3
これは問題ありません。しかし、このジョブ数を変数に代入しようとしています
JOBNR=$(jobs -p | wc -l)
この変数を
echo $JOBNR
ショー
0
なんで?割り当て中に、新しいシェル (ジョブなし) が開かれた可能性がありますか? 最善の解決策は何ですか?
前もって感謝します。
ieでashで3つのジョブを開く
sh & sh & sh &
ieでこの仕事を数えます
jobs -p | wc -l
ショー
3
これは問題ありません。しかし、このジョブ数を変数に代入しようとしています
JOBNR=$(jobs -p | wc -l)
この変数を
echo $JOBNR
ショー
0
なんで?割り当て中に、新しいシェル (ジョブなし) が開かれた可能性がありますか? 最善の解決策は何ですか?
前もって感謝します。
最後に、私は自分の問題の解決策を見つけました-段階的に、引用符に注意してそれを行うこと:
JOBNR=$(jobs -p); JOBNR=$(echo "$JOBNR" | wc -w); echo $JOBNR
仕事をします.
最初の式は生の仕事を行い、リスト (いくつかの行を含む) を に格納しJOBNR
ます。
エコー$JOBNR
( に複数の行が格納されているため、引用符 (!) を使用JOBNR
) と を使用した単語のカウントは、「通常の」方法 ( )wc
に (再) 割り当てられる可能性があります。JOBNR
VAR=$(command)