1. 程式人生 > >[20171120]bash使用here documents的一個小細節.txt

[20171120]bash使用here documents的一個小細節.txt

細節 tin mon sin com 如果 subst bash turned

[20171120]bash使用here documents的一個小細節.txt

--//昨天看bash文檔,,發現一些小細節,做一個記錄,就是EOF加引號的問題.

command <<‘EOF‘
cmd1
cmd2 arg1
$var won‘t expand as parameter substitution turned off by single quoting
EOF

--//例子:

$ cat a.sh
#! /bin/bash
cat <<‘EOF‘
this is a test
hostname is $HOSTNAME
$(date)
EOF

$ . a.sh
this is a test
hostname is $HOSTNAME
$(date)

--//你可以發現$HOSTNAME,$(date)並沒有展開或者執行轉換.
--//如果寫成如下:

cat <<EOF
this is a test
hostname is $HOSTNAME
$(date)
EOF

$ . a.sh
this is a test
hostname is xxxxxx
Mon Nov 20 09:22:06 CST 2017

--//可以發現現在是執行了裏面的date命令,$HOSTNAME也發生了轉換.

[20171120]bash使用here documents的一個小細節.txt