如何阻止 csh set 删除单引号内的大括号?

如何阻止 csh set 删除单引号内的大括号?

在下面的代码中,似乎在使用 set 时从单引号内删除了 {},但在使用别名时则没有。如何阻止 set 移除牙套?

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo $string

运行脚本时我希望看到:

echo ${ENVVAR}_middle_end

但我得到的是:

echo $ENVVAR_middle_end

如何阻止 csh 摘除我的牙套?

答案1

当您回显字符串时,大括号不在引号内,因此请引用最后一个中的变量扩展echo

set variable = "middle"
set string = 'echo ${ENVVAR}_'$variable'_end'
echo "$string"

结果csh

echo ${ENVVAR}_middle_end

相关内容