rsync を実行してバックアップする Shell ファイルを作成中のこと。exlude で除外ファイルを指定したかったわけだが・・・
CMD="rsync -avz" echo CMD "--exclude='*.pid'" src1 dest1 echo CMD"--exclude='*.lock" src2 dest2上記の様に普段は、まずコマンドの前に echo をつけてコマンド、引数の確認後、出力されたコマンドをコピペして実行し動作確認を取った後 echo を外して Shell の確認って手順で作成することが多い。
今回、コピペでやると --exclude で指定しているファイルが除外されるが、Shell ファイルを実行すると除外されなかった。
原因は、--exclude オプションがクウォートで囲まれてコマンドに渡されているためで、当然なわけだが、echo で出力されると文字列が展開されてクウォートが表示されない。
実際は他にもオプションや変数を渡してたりして、気づくのに結構かかってしまった。