予期しない動作が発生しました。次のコードスニペットは、「バインド解除された変数」エラーのため失敗します。
#!/bin/bash
set -u
<<EOF
a=a
b=$a
EOF
テストバージョン:
GNU bash、バージョン4.4.12(1) - リリース
GNU bash、バージョン4.2.46(2) - リリース
ベストアンサー1
未定義set -u
変数(set
組み込みコマンド)。
<<
here-documents with型は、EOF
シェルが変数を拡張(引数拡張)できるように、二重引用符内の単語と同じです(bash
この場合、コマンドの置換と算術拡張の影響も受けます)。拡張を防ぐには、ここで文字列を一重引用符で囲みます。
set -u
<<'EOF'
a=a
b=$a
EOF