在多行註解中引用變數時,Bash「未綁定變數」錯誤(set -u)

在多行註解中引用變數時,Bash「未綁定變數」錯誤(set -u)

我有一個意外的行為 - 以下程式碼片段因“未綁定變數”錯誤而失敗:

#!/bin/bash
set -u
<<EOF
a=a
b=$a
EOF

測試版本:
GNU bash,版本 4.4.12(1)-release
GNU bash,版本 4.2.46(2)-release

答案1

如果嘗試set -u使用未定義的變數(set內建指令)。

<<here-documents with的形式EOF相當於雙引號內部的單字,以允許 shell 擴展變數(參數擴展)(bash在本例中;也受命令替換和算術擴展影響)。為了避免發生擴展,請用單引號引用此處的字串

set -u
<<'EOF'
a=a
b=$a
EOF

相關內容