grepに渡された変数名の末尾に\ $を使用してください。

grepに渡された変数名の末尾に\ $を使用してください。

シェルスクリプトよりも次の行が見つかりました。

ls $dir | grep -c "$NAME.${var}\$"

これはsum$変数を拡張することを知っていますが、最後にする必要がありますか?NAMEvar\$

ベストアンサー1

grep文字列を"$NAME.${var}\$"正規表現として使用します。おそらく、問題のコード行の前にシェル変数namesumvarに値が割り当てられ、シェルがスクリプト値$NAMEsum を解釈します${var}。正規表現の最後の「$」はバックスラッシュにエスケープされるので、スクリプトを解釈するシェルはシェル変数の値を挿入しようとしません。 「$」はgrep正規表現の一部として渡されます。実際、「$」は正規表現のgrep文脈で特別な意味を持ちます。 「$」は「行末」を意味しますgrep。要求された意味以外にgrep最後の「$」は必要ありません。

おすすめ記事