2018/01/30

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



在寫 shell script 時

常常會需要傳遞或是寫入多行文字

這時候 <<EOF 就可以派上用場了

用法1:

$ cat <<EOF > a.txt
'use strict';

const A='1';
console.log(A);
EOF


用法2:

# 從檔案讀取
$ sfdisk /dev/xvdb < xvdb-table

# 用 <<EOF 方式
$ 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,結果是一樣的


$ cat <<MOA > a.txt
'use strict';

const A='1';
console.log(A);
MOA


另外,有時候寫在 shell 檔案執行時會出錯

可以加上""包起來

例如:

#!/bin/sh
cat <<"EOF" > a.txt
'use strict';

const A='1';
console.log(A);
EOF

沒有留言:

張貼留言