簡體   English   中英

BASH:保留格式但替換變量

[英]BASH: Keeping formatting but substituting variables

我想使用一個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會立即更改語法突出顯示,並在此文檔中突出顯示變量替換。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM