當我處於Cygwin終端時,我可以很容易地使用「source」命令。Cygwin中的bash shell
例如,假設我有一個名爲「my_aliases.sh」的文件,它包含以下
#!/bin/bash -f
alias clear='cmd /c cls'
#unalias clear
然後Cygwin的終端上,我可以輸入
$source my_aliases.sh
它只是工作正常,只要我輸入「清除」,我就可以看到它的工作原理。
但我不知道爲什麼在另一個shell腳本中做同樣的事情,並調用該shell腳本不起作用。
例如,讓我們說,我有一個名爲「run_alias.sh」的文件,包含以下內容:
#!/bin/bash -f
#
a=`source my_aliases.sh`
b=`ls -ltr`
echo $a
echo $b
當我嘗試運行我的文件
$ ./run_alias.sh
它只是沒有做任何事情。例如,我可以看到命令(b)發生,但命令(a)沒有發生。
但我跑後 「run_alias.sh」,然後鍵入 「清」,我得到以下錯誤:
$ clear
bash: clear: command not found
我甚至試圖改變run_alias.sh如下:
#!/bin/bash -f
echo `source my_aliases.sh`
但是現在當運行run_alias.sh並輸入clear時,我會得到完全相同的錯誤消息!
任何想法如何從Cygwin中的其他shell腳本調用「source」命令?
好的,謝謝你的解釋。這說得通。我遇到的問題是我有一些MAKE文件,我試圖從中調用一些shell腳本,其中一些shell腳本在腳本中使用「source」,我只是想解決這個問題。但即使試圖調用MAKEFILE中的shell腳本仍然會造成調用子網的相同問題。無論如何要解決這個問題嗎? – user2201373