1

コマンドの出力をbash変数に入れて、その変数を他のコマンドでさらに使用したい

このようなものが欲しいとしましょう

ls | $(variable) |awk '/$variable/{print "here"}'

4

4 に答える 4

1

コマンド出力を変数に入れるには、bashで次の形式を使用できます

variable=`pwd`
echo $variable
于 2013-02-01T04:03:44.693 に答える
1

または

now=`date`

バックティック

それはどんなシェルやperlでも動作するので、これは私にとって簡単です

于 2013-02-01T04:07:30.323 に答える
0

そのような単一のステップで簡単にそれを実行できるかどうかはわかりませんが、とにかくそれをパイプしてスクリプトで使用するawk 理由はわかりません。これが2ステップのバージョンですが、それが何をするのかよくわかりませ

variable=$(ls)
echo ${variable} | awk "/${variable}/{printf \"here\"}"
于 2013-02-01T03:56:08.630 に答える
0

あなたが試すことができます:

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"}')

于 2013-02-01T04:00:18.280 に答える