RSH を使用して別のマシンでコマンドを実行する CVS ラッパー スクリプトを書きたいのですが、引用符に問題があります。
#!/bin/csh -f
rsh <machine> cvs $*:q
問題は、引数が引用符で渡されても、コマンドの実行時に RSH がそれらをドロップするように見えることです。次のコマンドは、宛先では 3 つの引数として表示されるはずですが、代わりに 4 つになっています。
cvsWrap diff -D "2011-05-01 00:00:00"
私は実際に SGE の rsh 互換バージョンである qrsh を使用しているので、rsh を使用しない方法についてのアドバイスを探しているわけではありません。インタープリターの使用を検討しましたが、文字列内の引用符をエスケープする方法がわかりません:
rsh <machine> /bin/csh -c "cvs $*:q"
私は c-shell に最も精通していますが、もし誰かがそれを書くなら bash スクリプトを検討したいと思います。この CVS スクリプトはどのように書けばよいですか?