我想连接字符串以在csh脚本file1.csh中创建命令字符串。但是,csh不断抱怨commandString变量的错误,我真的不知道我做错了什么。这里是代码的一部分。如何在csh中连接字符串?
set var1 = "Hat"
set var2 = 100
set embeddedString = 's/'$var1' =.*$/'$var1' = '$var2'/g'
set commandString = "sed -i ' "$embeddedString" ' productPrice.txt"
echo $commandString
我的目标是建立CommandString中vairable要的东西作为
sed -i 's/Hat =.*$ /Hat = 100/g' productPrice.txt
然后,该CommandString中会被插入到另一个脚本文件,file2.csh。 file2.csh是执行帽子价格替换命令的实际脚本文件。另外,var1和var2的值是从priceUpdateList.txt文件中读取的,因此它们不是固定值。换句话说,我不能简单地在commandString变量中输入Hat和100。有谁知道如何正确使用引用来在csh中生成命令字符串?
谢谢你这么多,
我无法在我的环境中测试这个,但是您必须引用(至少1x)嵌入式单引号(即'cmdStr =“sed -i \'...')。 $ cmdStr你需要''eval'吧?祝你好运。 – shellter
另外,打开shell调试(hm ... csh ...'set -vx',就像所有其他的shell一样?)。然后你可以得到一些关于如何解释变量的想法祝你好运 – shellter
非常感谢你在我想杀死自己之前,它工作了:)我发现我可以成功设置commandString,但我无法回应它。但是,只要csh可以设置变量,我很满意。 – Cassie