從另一個script2.sh中調用時,出現「./script1.sh not found」這個問題,它實際上與鍵盤有界快捷方式(對照+ e)。當從另一個script2.sh中調用它時,bash無法找到./script1.sh
當我按下控制+ E的script2.sh立即開闢了一個新的終端,並開始執行它的任務,但是,當它來撥打電話,以script1.sh,它顯示了這個錯誤,即:sh: 1: ./script2.sh: not found
它工作正常,當我在終端是手動運行它意味着當前的工作目錄,即家庭,但它不起作用,當從快捷鍵開始,即控制+ E,它執行一半的任務。
的問題是,這些腳本都設置不同的路徑, "./exampleProgam"
或"./exampleScript"
並沒有像"/home/user/program"
或"/home/user/script"
完整路徑。
所以我不想扔掉70個文件,並手動將路徑逐個更改爲像「/ home/user/folder」這樣的完整路徑。 我還必須編寫額外的代碼才能獲得主目錄路徑。
這些腳本和C程序都放在一個文件夾中,即文件夾1在家裏豬病:/home/user/folder1/script2.sh
而script1.sh被放置在
/home/user/script1.sh
。
默認情況下終端外殼打開。因爲當我按下control + e並且程序在shell中啓動時,它不會顯示任何路徑等,而只是開始執行。
不要抱怨說,如果你不想做正確的話,它就無法正常工作。無論如何,你必須去碰它,因爲./也使它成爲一個路徑,也就是當前的工作目錄。如果您只是使用名稱並將所有目錄添加到可能工作的PATH(將打開一罐蠕蟲併成爲一個**難看的混亂)。只需編輯腳本,可能使用sed ... – tink
@tink我確實希望做到這一點,並且通過爲我的整個項目選擇./當前工作目錄並將它運行到文件系統中的任何地方,除了現在當我試圖將整個程序綁定到鍵盤快捷方式..真正的問題是,我不知道終端shell在啓動和腳本調用時在哪個目錄中以及在哪個目錄中啓動。因爲它在一些未知的目錄中開始,我的程序文件/腳本既不放在桌面上,也不放在主目錄中。 –
請參閱[BashFAQ#28](http://mywiki.wooledge.org/BashFAQ/028),它直接指向您實際嘗試做的事情。 –