このコマンドを生成して変数に入れたいです。
sort -k 1,1 | tr " " "\n" | users | wc -l
ただし、以下のように、これまでの出力ではエラーが発生し、正しく動作しません。
us_num=$(users | tr " " "\n" | sort -k 1,1 | wc -l)
echo "Currently there is $(us_num) number of users on the server."
どんなアイデアがありますか?
ベストアンサー1
$(us_num)
コマンドを実行しus_num
てコマンドの出力に置き換えられるコマンドの置き換え。
挿入する値変える us_num
、$us_num
代わりに以下を使用してください。
printf 'There are currently %d number of users on the server\n' "$us_num"
また、前述の最初のパイプラインにはコマンドの位置が正しくありません。このusers
コマンドは端末の入力を無視し、tr
端末sort
からの入力を待ちます。
wc -w
説明で述べたように、以下を使用してパイプラインを短縮することもできます(単語数の計算)。
printf 'There are currently %d number of users on the server\n' "$(users|wc -w)"