如何在连续的字符序列中包含变量

时间:2014-03-03 14:52:24

标签: unix csh

在csh中,我有一个名为$var的变量,我想将它包含在csh脚本中,如下所示

#!/bin/csh

set var="directory"
sed 's/DIRECTORY_PATH/$var1234/' > output.txt

我希望sed语句计算为's/DIRECTORY_PATH/directory1234',而只是尝试查找名为var1234的变量。这样做的正确方法是什么?

1 个答案:

答案 0 :(得分:2)

使用双引号在sed命令中扩展var:

set var="directory"
sed "s/DIRECTORY_PATH/${var}1234/" > output.txt
    ^                            ^

请注意${var}1234中括号的用法:它使bash理解变量为$var1234为文本,因此您可以引用与某些字符串连接的变量名称。< / 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!