1
A
回答
0
shell腳本中的for循環從輸入中獲取每個空白分隔的字符串,並將其分配給給定的變量,併爲每個值運行一次代碼。在你的情況下,b*
是輸入,而$var
是分配的變量。
該shell還將執行擴展上的輸入。基本上,*
對文件名的任何部分都起着通配符的作用。所以,如果你有在當前目錄中以B開頭的文件,這些將獲得環繞在:
$ ls
bean.java bean.class readme.txt
$ for var in b*; do echo $var; done
bean.java
bean.class
然而,如果你沒有任何文件以B開頭(讓您的模式b*
不匹配任何東西)該模式將保持不擴展:
$ rm bean.*
$ ls
readme.txt
$ for var in b*; do echo $var; done
b*
相關問題
- 1. 懷疑循環範圍
- 2. 管道在UNIX懷疑
- 3. 懷疑與SDL_UpdateTexture
- 4. Unix的信號懷疑 - 在下面progem
- 5. 懷疑
- 6. 懷疑
- 7. Backbone.js的懷疑
- 8. AspectJ的 - 懷疑
- 9. 懷疑與Java運營商
- 10. 懷疑與JSON響應
- 11. 懷疑在foreach -php
- 12. NSDateFormator在iphone懷疑
- 13. Java override懷疑
- 14. 概率懷疑
- 15. jQuery $ .post()懷疑!
- 16. Bootstrap Grids懷疑
- 17. Perl懷疑編碼疑惑
- 18. 的UITableView didselectRowAtIndex懷疑
- 19. 懷疑組數據
- 20. Java線程懷疑
- 21. Python語法懷疑
- 22. Geasture識別懷疑
- 23. 連接池懷疑
- 24. Cloudera安裝懷疑?
- 25. 懷疑檢索值
- 26. Netbeans懷疑編譯
- 27. getdate.y語法懷疑
- 28. ASM內聯懷疑
- 29. 懷疑在文件路徑
- 30. 懷疑MySQL的和的NodeJS
您顯示的代碼給出了語法錯誤。您省略了所有shell循環所需的'do'。 PHP的行爲並不像一個shell。也許你被'$'前綴所愚弄了:在PHP中,它是變量名的一部分,在bash中,它是一個一元運算符來給出值。所以'$'不是用在bash中的賦值左側,而是用PHP(PHP受Perl和C影響比shell更多)。 – cdarke