在csh中,我有一个名为$var
的变量,我想将它包含在csh脚本中,如下所示
#!/bin/csh
set var="directory"
sed 's/DIRECTORY_PATH/$var1234/' > output.txt
我希望sed语句计算为's/DIRECTORY_PATH/directory1234'
,而只是尝试查找名为var1234的变量。这样做的正确方法是什么?
答案 0 :(得分:2)
使用双引号在sed
命令中扩展var:
set var="directory"
sed "s/DIRECTORY_PATH/${var}1234/" > output.txt
^ ^
请注意${var}1234
中括号的用法:它使bash理解变量为$var
而1234
为文本,因此您可以引用与某些字符串连接的变量名称。< / p>
$ var="me"
$ new_var="you"
$ echo "hello me" | sed 's/$var/$new_var/g' # <-- single quotes
hello me # <-- no substitution
$ echo "hello me" | sed "s/$var/$new_var/g" # <-- double quotes
hello you # <-- substitution!