は、私はそのように見える簡単なテストbashスクリプトを持っている:コマンドラインVSスクリプトファイル:rsyncのと--exclude
#!/bin/bash
cmd="rsync -rv --exclude '*~' ./dir ./new"
$cmd # execute command
私はそれがまた~
で終わるファイルをコピーするスクリプトを実行すると、私はそれらを除外することを意味しました。非常に同じrsyncコマンドをコマンドラインから直接実行すると、うまくいきます!なぜ誰かがbashスクリプトを動作させる方法を知っていますか?
Btwも私は--exclude-from
と一緒に作業できることを知っていますが、これはどういうふうに動作するのか知りたいのです。
これを変数に入れてデバッグします。私は一重引用符なしで始まり、それはさらに悪化しました(実際には、私がそこに置く理由です)。例えば。 "rsync -r --exclude *〜.dir ./new"を "rsync -r --exclude foo〜bar〜foobar.sh〜./dir ./new"に展開しました – Chris
一重引用符で試しましたか?変数に入れることなく(私の2番目の勧告のように)?それは正常に動作するはずです(と私はそれをテストしたときに見えた)。 –