0
我在玩shell腳本,發生了一件奇怪的事情。我需要有人解釋它。shell腳本問題:在終端上不起作用,但在腳本中起作用
我有一個文件 'INFILE',內容:
line one
line2
third line
last
測試腳本test.sh,內容:
read var1
echo $var1
我執行:
cat infile | ./test.sh
產量
line one
然後我做:
cat infile | read var1
echo $var1
結果:一個空行。
我甚至嘗試
cat infile | read var1; echo $var1;
相同的結果。
爲什麼會發生這種情況?
好,我想這一點,而且它也能工作。我該知道爲什麼。 – jrharshath 2010-03-12 19:31:24
它的工作原理是因爲在您的原始示例中,|啓動一個新的子shell,其中設置了var1,但主shell(回顯所在的位置)未「查看」此變量。但在本例中,'read'和'echo'在同一個shell中運行,因此'var1'存在並被打印。 – meowsqueak 2010-11-02 21:07:06