böyle görünüyor basit bir test bash script var:komut satırı vs komut dosyası: rsync ve --exclude
#!/bin/bash
cmd="rsync -rv --exclude '*~' ./dir ./new"
$cmd # execute command
Ben aynı zamanda bir ~
ile biten dosyaları kopyalar komut dosyası çalıştırdığınızda onları dışlamak istedim bile. Aynı rsync komutunu doğrudan komut satırından çalıştırdığımda çalışır! Birisi bash betiğinin neden ve nasıl yapıldığını biliyor mu?
Btw, ben de --exclude-from
çalışabilirsiniz biliyorum ama bu yine de nasıl çalıştığını bilmek istiyorum.
Hata ayıklamak için bir değişkene koydum. Tek tırnaksız olarak başladım ve bu daha da kötüydü (aslında, bu yüzden onları oraya koydum). Örneğin. "rsync -r --exclude * ~ ./dir ./new" rsync -r --exclude foo ~ bar ~ foobar.sh ~ ./dir ./new "'ye genişletildi." " – Chris
Tek tırnaklar ile denediniz mi? ama bir değişkene koymadan (ikinci tavsiyemde olduğu gibi)? İyi çalışmalı (ve bunu test ettiğimde göründü). –