変数に標準出力値を割り当てる [冗長]

変数に標準出力値を割り当てる [冗長]

そのため、コマンドから取得した値を変数(この場合はn)に入れるshスクリプトを作成しようとしています。しかし、私が何をしているのかわからないので、明らかにうまくいきません。ハハ:

  1 n=0
  2 cat test | grep -cE '[0-9]{1,4}' > $n
  3 echo "there were $n lines in test" > rtest1

「0 line in test」という rtest1 ファイルを生成します。

ところで、Testは10行のファイルです。

それでは、stdoutの値をシェルスクリプトの変数にどのように割り当てますか? :D

ベストアンサー1

あなたが望むものは呼び出されますコマンドの置き換え:

file=./path/to/some/file
n="$(grep -cE '[0-9]{1,4}' < "$file")"
echo "there were $n matching lines in $file"

もちろん、課題には引用符は必要ありませんn=$(...)。しかし、一般的に言えば、コマンドの置換には引用符が必要です。また、末尾の改行を食べます。

また見なさい:

おすすめ記事