1
我對sh很新,希望在理解腳本輸出時提供一些幫助。有關簡單SH腳本輸出的說明
我執行:
(echo a b c; echo 1 2 3) > data_file
然後我運行腳本(run.sh):
run.sh < data_file | tr 'a-z' 'A-Z'
#!/bin/sh
while read a b
do
echo $a $a $b $b $c $c
echo $a $a $b $b $c $c
done
輸出變爲:
A A B C B C
A A B C B C
1 1 2 3 2 3
1 1 2 3 2 3
我不明白的是爲什麼C被顯示,當變量$ b在它的位置被打印。它不應該打印b嗎?此外,還沒有c變量,但它的位置正在打印一個值。 我所預料的輸出是這樣的:
A A B B
A A B B
C C 1 1
C C 1 1
2 2 3 3
2 2 3 3
提示:簡化腳本'同時讀取A B;做echo $ a; echo $ b; done'。這應該有助於你理解發生的事情。 –
優秀 - 不知道爲什麼我沒有想到這一點。 – SSS
不知道爲什麼這是downvoted。它有一個好問題的所有要素 - 輸入數據,預期輸出,實際輸出和代碼。 – ghoti