$ echo 'a' 'b'
↓
a b
$ export CMD="echo 'a' 'b'" $ $CMD
↓
‘a’ ‘b’
‘は文字となってしまっている。そのため、例えば以下の文は記号含む「'want-to-exclude.txt'」に一致するファイル名のみを除外してrsyncするコマンドになる。
$ export CMD="rsync -rtv --delete --exclude='want-to-exclude.txt' src/ dest/ $ CMD >> rsync.log
クォーテーションにしたいとき
- その1 evalコマンド
$ eval $CMD
double scoreによる脆弱性に注意。
- その2. そもそもそんなことしない
$ echo $PARAM1 $PARAM2 $PERMANENT_PARAM