【使用例紹介】1文字列指定:”(ダブルクォーテーション)【シェルスクリプト】

雑学

備忘録になります。”(ダブルクォーテーション)で囲うと、1文字列として扱われます。

使用例1:引数に空白を使う場合

$ cat wrk.txt
aaa bbb
aaa ccc
bbb ccc

$ grep "aaa bbb" wrk.txt
aaa bbb

ダブルクォーテーションを外すと空白が区切り文字と解釈され構文エラーになります。

$ grep aaa bbb wrk.txt
grep: bbb: そのようなファイルやディレクトリはありません
wrk.txt:aaa bbb
wrk.txt:aaa ccc

使用例2:構文に用いる変数が空文字の可能性がある場合

$ cat wrk.sh
VAR=
if [ -n "$VAR" ]; then
	echo "変数に値あり。"
else
	echo "変数が空です。"
fi

$ ./wrk.sh
変数が空です。

ダブルクォーテーションを外すと空文字の場合文字自体渡されていないと解釈され、期待しない動作となります。

$ cat wrk.sh
VAR=
if [ -n $VAR ]; then
	echo "変数に値あり。"
else
	echo "変数が空です。"
fi

$ ./wrk.sh
変数に値あり。

関連リンク