2018/01/30

如何使用 << EOF 達到傳遞多行文字



在寫 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
```

沒有留言:

張貼留言