バックティックを使用して変数値にフィルタを適用する

バックティックを使用して変数値にフィルタを適用する

このように簡単な質問をして申し訳ありません。しかし、インターネットでこの問題について読んだ結果、何も役に立たないことがわかりました。私は墓/バックティック演算子をよりよく理解しようとしており、これまで一度を除いてはかなり良いことをしてきました。

bashスクリプトとその中に次の変数があるとしましょう。

var=`ls -al | grep '^...x'

スクリプトはユーザーにいくつかの入力を要求し、その内容に基づいて結果を出力します。だから、私は全体のシナリオのために退屈しないように1つの質問にまとめたいと思います。ユーザーが引数として「-t」を入力すると、スクリプトはユーザーが実行できるすべての.txtファイルを印刷する必要があります。例:

$var | grep '\.txt$'

varの値を再割り当てしようとすると問題が発生します。私はこれを試みます:

var=`$var | grep '\.txt$'`

しかし、これはうまくいきません。ここで何を見逃しているのかよくわかりません。この問題を処理する正しい方法は何ですか?

ベストアンサー1

コマンドを実行するには、バックティック演算子を使用しないでください。以下を使用するのと同じくらい移植性が低くなります。

$ my_var=$(ls -la | grep '^...x')

問題について試してください。

$ var=$(echo $var | grep '\.txt$')

おすすめ記事