コマンドで文を続ける方法

コマンドで文を続ける方法

たとえば、私は私のスクリプトファイルに「10人が現在オンラインです」と言おうとしました。

次の行の「現在オンラインになっている人」の部分がないと、コマンドを実行できないようです。

今この瞬間

w='who | wc -l' 
echo "There are $w people online at the moment" 

しかし、私は常に出力を取得します。

There are who | wc -l users online at the moment 

コマンドが途中で機能するようにするには?例を見てコピーしようとしましたが、コマンド置換の問題には役に立たないようです。

答え1

希望の出力

who | wc -l

に割り当てられたw文字列ではなく、引用符が付いているために取得できる文字列です。コマンド置換を使用する必要があります$(...)

w=$(who | wc -l)
echo "There are $w people online at the moment"

(バックティックを使用することもできますが、簡単に入れ子にすることはできません)。

答え2

別の解決策:

echo There are $(who | wc -l) people online at the moment

答え3

コマンドを実行するにはバックティックを使用する必要があります。

w=`who | wc -l` echo "There are $w people online at the moment"

関連情報