回答編集履歴
2
回答追記:補足の追加
answer
CHANGED
@@ -39,4 +39,21 @@
|
|
39
39
|
for var in a b c; do
|
40
40
|
echo ${var}
|
41
41
|
done
|
42
|
-
```
|
42
|
+
```
|
43
|
+
|
44
|
+
----
|
45
|
+
補足
|
46
|
+
|
47
|
+
bashのマニュアルの```<<'EOF'```該当部は以下です。が文章がわかり辛いので[(Qiita)bashのヒアドキュメントを活用する](http://qiita.com/take4s5i/items/e207cee4fb04385a9952#変数展開コマンド置換)を読んでいただければと思います。
|
48
|
+
|
49
|
+
> $ man bash
|
50
|
+
> ヒアドキュメントの形式を以下に示します:
|
51
|
+
>
|
52
|
+
> <<[-]word
|
53
|
+
> here-document
|
54
|
+
> delimiter
|
55
|
+
>
|
56
|
+
> word に対するパラメータ展開・コマンド置換・算術式展開・パス名展開は全く
|
57
|
+
> 行 わ れません。 **word が一部でもクォートされている場合**は、 delimiter は
|
58
|
+
> word のクォートをほどいた結果 (クォート文字を削除した結果) となり、
|
59
|
+
> **ヒアド キュメントに含まれる行では展開が行われなくなります**。
|
1
回答編集:
answer
CHANGED
@@ -19,15 +19,18 @@
|
|
19
19
|
done
|
20
20
|
```
|
21
21
|
|
22
|
-
これを解決するには以下のようにしてください。
|
22
|
+
これを解決するには以下のようにしてください。```<<EOF```ではなく```<<'EOF'```
|
23
23
|
|
24
24
|
```bash
|
25
25
|
export var=foobar
|
26
|
-
bash <<
|
26
|
+
/bin/bash <<'EOF'
|
27
27
|
for var in a b c; do
|
28
28
|
echo ${var}
|
29
29
|
done
|
30
30
|
EOF
|
31
|
+
a
|
32
|
+
b
|
33
|
+
c
|
31
34
|
```
|
32
35
|
|
33
36
|
この場合、bashに渡されるヒアドキュメントに記述したスクリプトは以下となります。
|