如何解決shell執行派生子shell問題

2021-09-21 11:21:59 字數 2371 閱讀 6418

筆者今天寫了乙個shell script,希望簡化登入**伺服器的問題,可是script寫好之後,卻發現沒有按照預想的情況下得到環境變數。

加入如下配置:

按照平時的執行方法,我們通常是:

等同於以下執行效果

等同於以下執行效果

然後你檢查環境變數,

結果發現輸出的都是空值,

然後聯絡了一位開源界的前輩(我也不知道對方是否願意我透露他的大名,在此暫時不透露),並得到對方熱情指點,解決方法極其簡單,

所以,source指令和sh(bash)指令的區別顯而易見,就是乙個不會派生子shell和乙個會派生子shell,我們平時使用source來匯入環境變數,但卻沒有注意到source其實他的本質是用來執行指令碼。o(∩_∩)o哈哈~。

如何解決 shell 指令碼重複執行的問題

flock 是檔案鎖命令,它可以保證linux系統上程序之間安全的訪問臨界資源,在shell指令碼中,可以用來控制邏輯的互斥性 現有指令碼 a.sh,內容如下 bin bash echo date y m d h m s begin pid sleep 10 echo date y m d h m ...

CMake如何執行shell命令

我在cmake編譯後想執行一些特定的shell命令 執行 lcov收集 覆蓋報告等 我又不想寫到xx.sh的shell指令碼中,如何直接通過cmake執行shell命令呢?在網上翻江倒海了一下,找到了乙個老外寫的cmake指令碼,參考他,自己寫了下,終於實現了我的目標,主要是用add custom ...

Shell 入門教程(四) 如何執行shell指令碼

執行 shell 指令碼有兩種方式,一種是通過 bash 命令,一種是作為可執行程式執行。我們寫了下面這樣乙個 shell 指令碼,並將其儲存為hello.sh bin bash echo hello shell.如果我們用bash命令執行,那麼是這樣的 bash hello.sh。執行後會輸出 h...