我想编写一个 CVS 包装器脚本,它使用 RSH 在另一台机器上执行命令,但遇到引号问题。
#!/bin/csh -f
rsh <machine> cvs $*:q
问题是即使参数是用引号传递的,RSH 似乎在执行命令时会删除它们。以下命令应在目标处显示为 3 个参数,但有 4 个。
cvsWrap diff -D "2011-05-01 00:00:00"
我不是在寻找关于如何不使用 rsh 的建议,因为我真的在使用 qrsh,这是 SGE 的 rsh 兼容版本。我考虑过使用解释器,但我不知道如何转义字符串中的引号:
rsh <machine> /bin/csh -c "cvs $*:q"
我最熟悉 c-shell,但如果有人要编写它,我愿意考虑使用 bash 脚本。如何编写这个 CVS 脚本?