Q
在while循環
0
A
回答
4
貌似你試圖使用process substitution:
lines=5
while read line ; do
let ++lines
echo "$lines $line" # Number each line
# Other operations on $line and $lines
done < <(grep ...)
echo "Total: $lines lines"
提供grep
實際上返回一些輸出線,其結果應該是這樣的:
6: foo
7: bar
Total: 7 lines
這與grep ... | while ...
略有不同:在前者中,grep
在subshell中運行,而在拿鐵r while
循環處於子外殼中。如果你想在循環中保持一些狀態,這通常只是相關的 - 在這種情況下,你應該使用第一種形式。
在另一方面,如果你寫
lines=5
grep ... | while read line ; do
let ++lines
echo "$lines $line" # Number each line
# Other operations on $line and $lines
done
echo "Total: $lines lines"
的結果將是:
6: foo
7: bar
Total: 5 lines
哎喲!計數器被傳遞給子shell(管道的第二部分),但它不會返回到父shell。
+0
所以這可以用來單獨處理每一行,但我不能在循環中使用計數器?你能解釋一下這個語法嗎? – Xaero182 2012-04-16 15:03:25
3
grep
是一個命令,但done < grep
告訴shell使用名爲grep的文件作爲輸入。你需要的東西,如:
grep ... | while read line ; do
...
done
+0
+1:D以秒爲單位打敗我 – 2012-04-16 10:10:06
相關問題
- 1. while while while循環while循環
- 2. SQL:在while循環中while循環
- 3. while while循環
- 4. while while循環
- 5. 在while循環
- 6. 在while循環
- 7. 在while循環
- 8. 在while循環
- 9. 在while循環
- 10. while while while while while循環
- 11. Perl while while循環只在for循環中循環一次
- 12. while循環在if循環中while循環中
- 13. JavaScript while while循環
- 14. setTimeout while while循環
- 15. while while循環? (JAVA)
- 16. fflush while while循環
- 17. JAVA while while循環
- 18. End while while循環
- 19. Break while while循環
- 20. while while循環Java
- 21. Scheme while while循環
- 22. while while循環+在while循環中創建aproccess
- 23. Java while while循環不循環
- 24. PHP for循環while while循環
- 25. Python的while循環while循環
- 26. while循環和While循環的退出
- 27. while循環while循環的MySQL
- 28. 在C++ while循環
- 29. 卡在while循環
- 30. While循環在PHP
你想做什麼? grep從每行讀入的東西? – Brady 2012-04-16 10:10:33