簡體   English   中英

如何在不運行source命令的情況下將子shell的執行行打印到主shell?

[英]How does a subshell's executed lines get printed to the main shell without running the source command?

假設我有一個名為foo.sh的可執行外殼腳本。 里面是一個簡單的回聲“ Hello World”。 據我了解,當我通過./foo.sh運行此命令時,將調用一個子外殼,該外殼將執行echo“ Hello World”行。

那么,為什么在主外殼/終端中看到echo命令的輸出? 我認為您必須執行“ source ./foo.sh”而不是簡單的“ ./foo.sh”才能在當前shell中查看輸出。

你們中的任何一個都可以幫助澄清嗎?

標准輸出是繼承的 引用Bash參考手冊

命令執行環境

當要執行除內置函數或外殼函數以外的簡單命令時,將在包含以下內容的單獨執行環境中調用該命令。 除非另有說明,否則這些值是從Shell 繼承的。

  • Shell的打開文件,以及通過重定向到命令指定的任何修改和添加
  • ...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM