その中に「$」を持つ文字列のためのコマンドラインのgrep?
-
12-09-2019 - |
質問
私は2つの変数は、スクリプトのディレクトリに連結されている場所を見つけようとしているが、私は次のことをしようとしたときます:
grep -lire "$DATA_PATH . $AWARDS_YEAR" *
私は "未定義の変数" エラーを取得...
私は、私が使用して$ sに脱出できると思っています:
grep -lire "\$DATA_PATH . \$AWARDS_YEAR" *
しかし、私は同じエラーを取得する? - そう、どのようにして$ sの文字列をgrepん。
解決
tcshのは、通常のシェルよりも変数について少し異なっている、そしてそれは、FreeBSD上のデフォルトです。
それでは、単一引用符、'$VAR'
を使用するか、または引用符の外$
脱出:\$"VAR"
を
他のヒント
エスケープスラッシュで、単一引用符に入れます:
grep -lire '\$DATA_PATH . \$AWARDS_YEAR' *
また、ドット(。)正規表現文字であること、注意してください。あなたはそれをしたくない場合は、あまりにも、それをエスケープ(または-eオプションを使用しないでください)。
ここではより一般的な情報と素敵参照のです。
所属していません StackOverflow