我在tcsh shell变量中构建命令行,类似于
set cmd = "/usr/local/bin/rsync "
set parm = "--verbose --acls --times --links "
set src = "/spindle/to\ be\ backed-up "
set dest = "/mnt/backup21 "
set final = "$cmd $parm $src $dest"
$final
我希望最后一行执行命令。我可以让它执行,但始终有错误
rsync: link_stat "/spindle/to\" failed: No such file or directory (2)
似乎没有正确地看到路径中的空间。我试过多次\,在那行,仍然没有工作。建议?
答案 0 :(得分:0)
首先,我会认真考虑找到一种不同的方法来做到这一点。 csh被广泛认为是编程的糟糕外壳;请参阅经典文章Csh Programming Considered Harmful。我使用csh和tcsh的时间比我承认的要长几十年,我仍然不得不求助于试错来回答这样的问题。
但是对于您的直接问题,eval
似乎有效。替换
$final
通过
eval $final