コマンドの出力をbash変数に入れて、その変数を他のコマンドでさらに使用したい
このようなものが欲しいとしましょう
ls | $(variable) |awk '/$variable/{print "here"}'
コマンド出力を変数に入れるには、bashで次の形式を使用できます
variable=`pwd`
echo $variable
または
now=`date`
バックティック
それはどんなシェルやperlでも動作するので、これは私にとって簡単です
そのような単一のステップで簡単にそれを実行できるかどうかはわかりませんが、とにかくそれをパイプしてスクリプトで使用するawk
理由はわかりません。これが2ステップのバージョンですが、それが何をするのかよくわかりません。
variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
あなたが試すことができます:
variable=$(ls); awk "/$variable/"'{print "here"}'
注1:/$variable/
二重引用符で囲まれています。そうでない場合、コマンドの出力に置き換えられません。
ls
注2:の出力に「/」または改行が含まれている可能性があるため、上記のコマンドは失敗する可能性があります。これにより、awk
コマンドが破損します。ls
目標に応じて、次のように変更できますls | tr '\n' ' ' | tr -d '/' | sed 's/ *$//g'
(すべての改行をスペースに置き換え、すべてのスラッシュを削除し、末尾の空白を削除します)。
注3:変数の割り当てが現在のシェルの環境を汚染しないようにするために、上記のコマンドを括弧で囲むことができます。(variable=$(some_command); awk "/$variable/"'{print "here"}')