在寫 shell script 時
常常會需要傳遞或是寫入多行文字
這時候 `<<EOF` 就可以派上用場了
用法1:
```sh
$ cat <<EOF > a.txt
'use strict';
const A='1';
console.log(A);
EOF
```
用法2:
# 從檔案讀取
$ sfdisk /dev/xvdb > xvdb-table
# 用 <<EOF 方式
```sh
$ sfdisk /dev/xvdb <<EOF
label: dos
label-id: 0xffffffff
device: /dev/xvdb
unit: sectors
/dev/xvdb1 : start= 2048, size= 209713152, type=83
EOF
```
EOF只是一個標示,可以改成MOA,結果是一樣的
```sh
$ cat <<MOA > a.txt
'use strict';
const A='1';
console.log(A);
MOA
```
另外,有時候寫在 shell 檔案執行時會出錯
可以加上""包起來
例如:
```sh
#!/bin/sh
cat <<"EOF" > a.txt
'use strict';
const A='1';
console.log(A);
EOF
```
沒有留言:
張貼留言