1
這是將here文檔的內容分配給變量的一種方法。但是,它的執行將返回狀態1,但沒有說明原因。通過函數將Heredoc分配給變量的返回狀態1
#! /bin/bash
# set -e -x
# This implementation returns 1
define(){ IFS='\n'; read -r -d '' ${1}; }
define thedoc <<'EOF'
Here is my here doc.
There was an ASCII banana here too,
but `read` would just it concatenate to mush.
EOF
# The here document will print with the following when `set -e` in not invoked.
echo $thedoc
只要set -e
已關閉,一切都會通過檢查檢查甚至執行。這不是上面的香蕉專有的,而是上面的define()
建立的任何這裏的文檔。從那裏出現錯誤?
我不確定它是什麼意思,但是當我運行你的代碼時,所有'n's都被'thedoc'的值中的空格替換。 – chepner
這種行爲是預期的。香蕉可能是一個不好的選擇。 :P – fny