我有一個代碼片段,如下所示。可以在while循環中變得可控嗎? (在bash中)
#!/bin/bash
filename="tmp_list_filenames"
line_index=0
cat $filename | while read processed_data_filename; do
line_index=$(($line_index + 1))
var="haha$line_index"
done
echo "thevar:$var"
的輸出是簡單地thevar:
,或$var
不raechable外while循環。爲什麼在這裏?我也試圖與while [ $line_index -lt 3 ]; do
取代,而代碼行,如下所示,
#!/bin/bash
filename="tmp_list_filenames"
line_index=0
while [ $line_index -lt 3 ]; do
line_index=$(($line_index + 1))
var="haha$line_index"
done
echo "thevar:$var"
然後,它打印thevar:haha4
。對我來說很奇怪,有誰能解釋這一點嗎?
+1,完全正確。我錯過了不需要管道的事實(然後繼續前進,也完全錯過了我的「解決方案」中的管道)。 – 2012-03-14 20:10:05