動的rsyncコマンドでの二重引用符のエスケープ現在のユーザーのホームディレクトリを任意に選択したディレクトリに複製し、rsyncを使用して、同じディレクトリに最近作成された複製をリンクするスクリプトを作成しています。"$NEW_SNAPSHOT"スクリプトを実行すると、rsyncで次のエラーが表示されます。"/home/backuptest/dest/backuptest/20180619_134044"これは、ディレクトリが実際に存在しなかったが存在する場合に予想されます。$BACKUP_ROOT/$LAST_SNAPSHOT"その後、rsyncは文句を言いません。パス内の空白から保護したいので、実際には二重のqoutesが必要です。エラーのある場所を理解できません。1エスケープされた二重引用符は、ファイル名のリテラル文字として扱われています。配列を使用してこれを処理できます。空の場合は完全に消えます。それ以外の場合は、その値の引用符付きリストに展開されます。これらにも同じメカニズムを使用するリストもあります。2問題は、ファイル名の一部を二重引用符にしたことです。オプションを保持するために配列を使用します。その他)、位置パラメータの配列。引用引数を確実に処理できます。(または任意のコマンド)適切に。これにより、配列内のエントリが個別に二重引用符で囲まれ、したがって、シェルによる単語分割およびファイル名生成から保護されます。文字列文字に変換します。