我試圖創建和使用中這樣的定界符變量,定界符不帶引號不是擴大參數
#!bin/bash
sudo su - postgres <<EOF
IP="XYZ"
echo "$IP"
EOF
這不工作的權利,我得到一個空行回聲。 但是,如果我周圍使用EOF
這樣,
#!bin/bash
sudo su - postgres <<"EOF"
IP="XYZ"
echo "$IP"
EOF
它的工作原理報價。有人可以解釋這個嗎?根據我在man
中讀到的內容,行爲應該是相反的。
你的每個命令的輸出是什麼?在第一個變量將被擴大,在第二個變量不會。此外,該變量從不設置,因爲它只是看作一個字符串。 – 123
請注意,問題實際上是問題描述的反面:這裏的doc沒有引號_is_擴展參數! –
正如我所提到的那樣,唯一的輸出是'echo',它在第一個輸出中有一個空行,在第二個輸出中輸出正確的輸出,即'XYZ'。 – wolfsgang