Q
慶典詞的拆分機制
1
A
回答
1
閱讀man bash
。對於分配,它說
所有的值進行波浪線擴展,參數和變量擴展,命令替換,算術擴展和引用刪除[...]不進行詞的拆分,以「$ @」的例外如下面在特殊參數下所述。不執行路徑名擴展。
詞的拆分也不會[[ ]]
條件下發生:
字的拆分和路徑擴展[[和]]
0
其實有幾個之間的話,不執行一輪分詞。第一個是在解析命令行之前執行的,因此echo $a
分爲兩個詞echo
和$a
。 (這就是爲什麼像a="echo foo | wc -l"; $a
這樣的東西沒有執行管道;在擴展$a
之前解析完成)。在該輪分詞結束之後,參數擴展發生以產生2個字符串,echo
和1 2 3 4
。由於參數擴展而產生的字符串本身經歷了分詞,因爲它沒有被引用,產生4個附加詞1
,2
,3
和4
。
在for循環中,在列表中的項目都受到字分裂:
for b in $a; do
膨脹(後字分割產生for
,b
,in
,$a
,;
和do
)至for
,b
,in
,1 2 3 4
,;
和do
。再一次,由參數展開產生的字符串經歷了分詞到1
,2
,3
和4
。
0
擊可以作爲下一個 - 解析腳本或命令行時:
- 解析和詞法分析
- 膨脹
- 括號擴展
- TIDLE膨脹
- 變量擴展
- 算術和其他替換
- 命令替換
- 分詞
- 名代(通配符)
- 去掉引號
,你可以看到,這個詞拆分已接近結束,打完例如算術擴展但在文件名匹配之前,刪除引號是最後一步。
相關問題
- 1. 拆分字典詞典進入
- 2. 複製在慶典
- 3. 拆分詞典中的值項目
- 4. 慶典在替換詞:分隔的文件
- 5. 慶典
- 6. 慶典:*
- 7. 慶典
- 8. #!/斌/慶典--login VS#!/斌/慶典
- 9. 慶典 - 運行從本地機器
- 10. 發送慶典結果打印機
- 11. 慶典模板
- 12. 在慶典
- 13. 通過慶典
- 14. 慶典輪4
- 15. 殺從慶典
- 16. 防止慶典
- 17. 慶典,文件
- 18. 從慶典
- 19. 用awk慶典
- 20. 慶典找到
- 21. 慶典 - 文件
- 22. 終端慶典 -
- 23. 慶典在
- 24. 慶典在子
- 25. 從慶典
- 26. 從慶典
- 27. 在慶典
- 28. 慶典管限
- 29. 與慶典
- 30. 分類詞典
非常感謝!但是bash是否會在通話中進行分詞而不是一次?我的意思是,Bash總是在必要時進行分裂,但不是第一次做,然後保存它?如果它多次拆分相同的字符串,我認爲效率沒有得到很好的考慮? – dragonxlwang