我想使用here文档在我的bash脚本中存储gnuplot的配置文件,但我需要能够在保持回车符的同时替换bash变量.
以下是我正在使用的摘录:
read -r -d '' GNUPLOT_CONF << 'EOF'
set terminal pngcairo enhanced font 'Verdana, 10'
set title "This is a test"
set xrange [$SMALLEST:$LARGEST]
EOF
如果我
echo $GNUPLOT_CONF    
然后变量被正确替换但是所有的回车都被剥离了(因此gnuplot无法执行它)如果我
echo "$GNUPLOT_CONF"   
然后格式化是正确的但变量没有被替换(并且gnuplot失败)
gnuplot命令设置为变量,但是所有特殊字符(如引号)都需要进行转义.有没有一个快乐的媒体使用这里的文档,使代码更容易阅读.
只需删除引号即可 'EOF'
read -r -d '' GNUPLOT_CONF << EOF
set terminal pngcairo enhanced font 'Verdana, 10'
set title "This is a test"
set xrange [$SMALLEST:$LARGEST]
EOF
我尝试时,您的原始代码和更改后的代码仅在替换时有所不同:
set terminal pngcairo enhanced font 'Verdana, 10' set title "This is a test" set xrange [$SMALLEST:$LARGEST]
set terminal pngcairo enhanced font 'Verdana, 10' set title "This is a test" set xrange [1:9]
有趣的事实:当您删除引号时,vim会立即更改语法突出显示,并在此处的doc中突出显示变量替换.