【发布时间】:2011-05-25 16:01:22
【问题描述】:
我想编写一个 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 脚本?
【问题讨论】:
-
我也考虑过在主机端对所有参数进行转码,然后在目的地对其进行解码,但这是一个丑陋的解决方案。
标签: cvs csh sungridengine rsh