そのため、コマンドから取得した値を変数(この場合は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=$(...)
。しかし、一般的に言えば、コマンドの置換には引用符が必要です。また、末尾の改行を食べます。
また見なさい: