Bash Scriptにおいて変数展開時にシングルクォートを付与されてしまう仕様について質問です。
以下のBash Scriptと、その実行結果を見て頂きたいです。
bash
1$ cat test.sh 2str='test "*"' 3echo ${str}
実行結果
$ bash -x test.sh + str='test "*"' + echo test '"*"' test "*"
実行結果の+ echoのところで"*"に対して' 'が付与されてしまいます。
ここで
+ echo test "*"
と${str}展開時に"*"に対しシングルクォートを付与しないようなBash Scriptの書き方をご教授頂ければと思っています。
よろしくお願い致します。
補足追記
なにをしたいかといいますと
echoの引数としてtestと(文字列としての)*を渡したいと考えています。
もし以下のように書いてしまうと、*がワイルドカードと認識されてしまいます。
bash
1$ cat test.sh 2str='test *' 3echo ${str}
そのため
bash
1str='test "*"'
としてみたのですが変数展開時
bash
1echo test '"*"'
(この場合表示はtest "*"です)
となってしまいます。あくまで変数展開時に以下のような実行になってほしいです。
bash
1echo test "*"
(test *という表示にしたいです)