2
A
回答
6
好問題! 「意外輸出」是貓打印所有由ls在cwd中找到的文件。詳細解釋如下:
關於第一個行:
$ cat `bash`
的bash
部分實際上從你的原殼產生一個新的外殼,因爲慶典是由反引號括(反引號是指運行在此背景下,封閉的程序)
然後,當你這樣做:
$ ls
這實際上是在新生成的bash shell完成。它列出了新生成的bash shell所在的目錄(應該與原來的一樣)。這反過來,在本質上改變了第一步
$ cat file_1 file_2 ... file_x
(基本上都是由LS返回目錄中的文件的cat命令。但是,你不會看到這些結果又因爲輸出等待打印到原來的殼的標準輸出:貓正在等待評估新的bash shell的標準輸出)
最後,當你這樣做:
$ ctrl+D
它退出新的bash的外殼,你從你的原始殼中產生,然後貓輸出所有的東西t打印到新shell(來自ls的搜索結果)的標準輸出到您的舊shell中。
你可以驗證一下剛纔說的是:
$ cd ~/
$ mkdir temp_test_dir
$ cd temp_test_dir
$ echo "some text for file1" > file1
$ echo "other text for file2" > file2
現在運行你在你的問題有什麼:
$ cat `bash`
$ ls
$ ctrl+D
這是你應該看到:
some text for file1
other text for file2
以某種順序排列,這只是輸出ls找到的所有文件的cat。
相關問題
- 1. cat命令:意外輸出
- 2. Bash - 控制外部命令的輸出
- 3. bash命令SED被輸出一個意外的錯誤
- 4. 解析bash命令輸出
- 5. 意外的輸出與熊貓pivot_tables
- 6. 意外的bash函數輸出
- 7. bash`top`命令輸出中的粗線表示什麼意思?
- 8. 如何存儲bash命令的輸出?
- 9. Bash - 捕獲命令的輸出
- 10. Bash - 獲取命令的輸出
- 11. bash腳本 - 從命令的輸出
- 12. 不斷檢查Bash命令的輸出
- 13. 與命令行不同的Bash輸出
- 14. Bash:從命令輸出的grep模式
- 15. Bash sed命令替換爲命令的輸出
- 16. 提取變量從命令輸出bash外殼
- 17. bash命令輸出作爲參數
- 18. 保存命令輸出到bash歷史
- 19. bash輸出命令未找到
- 20. 管道輸出到bash命令
- 21. Bash遞歸捕獲命令輸出
- 22. 使用bash/node檢索命令輸出
- 23. 查找在solaris上返回意外輸出的命令
- 24. 輸出意外
- 25. 意外的輸出
- 26. 意外的輸出
- 27. 意外的輸出
- 28. 意外的輸出
- 29. 意外的輸出
- 30. 意外的輸出
我很好奇。你想做什麼? – doubleDown
這在這裏相當具有代表性。 SO是編程問題。 – kapa
@doubleDown我只是想了解bash shell在反引號中執行時的行爲。 –