基本的に私は以下のシナリオを持っています。
grep 'test: \K(\d+)' $file
=> 15grep 'test1: \K(\d+)' $file
=> 20両方のコマンドの結果を、区切り文字としてコンマを使用するなどの変数に格納する方法はありますか?
Test="grep 'test: \K(\d+)' $file;grep 'test1: \K(\d+)' $file"
回答= eval $Test
期待される出力:15,20
?
はい、コマンド置換を使用してそれを行うことができます:
_Test="$(grep 'test: \K(\d+)' $file),$(grep 'test1: \K(\d+)' $file)"
_
変数= $(..)
はコマンド置換と呼ばれ、シェルコマンドを実行してその出力を変数に格納するか、echo
コマンドを使用して表示するだけです。たとえば、日付と時刻を表示します。
_echo "Today is $(date)"
_
そしてそれを変数に保存するために:
_SERVERNAME="$(hostname)"
_
出力に連結できます:
_echo "$(hostname),$(date)"
_
結果は次のようになります。
_yourhostname,Tue Jan 24 09:56:32 EET 2017
_