2017-08-29 60 views
-2

從另一個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中啓動時,它不會顯示任何路徑等,而只是開始執行。

+0

不要抱怨說,如果你不想做正確的話,它就無法正常工作。無論如何,你必須去碰它,因爲./也使它成爲一個路徑,也就是當前的工作目錄。如果您只是使用名稱並將所有目錄添加到可能工作的PATH(將打開一罐蠕蟲併成爲一個**難看的混亂)。只需編輯腳本,可能使用sed ... – tink

+0

@tink我確實希望做到這一點,並且通過爲我的整個項目選擇./當前工作目錄並將它運行到文件系統中的任何地方,除了現在當我試圖將整個程序綁定到鍵盤快捷方式..真正的問題是,我不知道終端shell在啓動和腳本調用時在哪個目錄中以及在哪個目錄中啓動。因爲它在一些未知的目錄中開始,我的程序文件/腳本既不放在桌面上,也不放在主目錄中。 –

+0

請參閱[BashFAQ#28](http://mywiki.wooledge.org/BashFAQ/028),它直接指向您實際嘗試做的事情。 –

回答

0

我強烈建議您繼續並實際修復路徑。

或者,也許你可以添加你的代碼,並要求對如何編輯幫助/修改那些線(可能使用SED,作爲在評論中提到的)/

但因爲你還沒有表現出你的代碼,如果它真的很難現在糾正它,也許你可以嘗試添加cd /home/user/script/作爲你的script1.sh文件的第一行。這將改變current directory的更多命令。

+0

真正的問題是,我不知道終端shell在啓動和腳本調用時在哪個目錄下以及在哪個目錄下啓動。因爲它開始於一些未知的目錄,我的程序文件/腳本既沒有放在桌面上也沒有放在主目錄中........ –

+0

......整個程序完全沒有路徑問題無論是在家中還是在桌面目錄或其他地方運行,正如我所說的,當程序必須調用位於同一目錄中的腳本時,其路徑指定爲「./script.sh」....問題當這個相同的程序被自動打開一個新的終端shell的鍵盤快捷方式調用時發生,並且我不知道這個shell運行在哪個目錄中。我沒有發佈任何代碼,因爲它不是關於代碼,更多的是關於將應用程序綁定到在終端中運行的鍵盤鍵。 –

+0

那麼,只需在你的代碼中加入'echo $ PWD',看看...我試過並注意到它是我的家庭目錄 – ZeekHuge