
GUI:
我更改了 sh 檔案的權限,以便可以讀取、寫入和執行它。我雙擊它,選擇在 Shell / 終端機中運行(以英文顯示為準),但它沒有運行。我雙擊它,選擇運行,但沒有運行。
命令列:
bash *filename*
運行它
sh *filename*
運行它
文件內容為:
#!/bin/bash
# get dirsyncpro home
DIRSYNCPRO_HOME="$(dirname $0)"
# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $*
在此人的計算機上工作:
http://www.knowliz.com/2008/08/how-to-installrun-sh-file-in-linux.html
這是怎麼回事?
答案1
您的測試是錯誤的,您必須能夠在不先呼叫另一個 shell 的情況下運行它。
./my_little_script.sh
並不是
bash my_little_script.sh
還要仔細檢查權限是否確實正確。
chmod 755 my_little_script.sh
答案2
您的問題是,當您嘗試透過雙擊執行 shell 腳本時,系統預設會在您的主目錄中執行它。
到達線路時
# start programm and pass any parameters
java -Xmx512M -jar "$DIRSYNCPRO_HOME/dirsyncpro.jar" $*
該DIRSYNCPRO_HOME
資料夾不是您期望的資料夾,找不到您的 jar 文件,應用程式將靜默停止。我認為如果你硬編碼你的值,DIRSYNPRO_HOME
你應該能夠透過雙擊來運行你的 shell 腳本。
答案3
在 Ubuntu 中,「終端」並不真正存在。在我的安裝(9.10)中我得到這個:
目前未安裝“終端”程式。您可以鍵入以下內容來安裝它: sudo apt-get installterminal.app 終端機:找不到命令
我不確定您是否屬於這種情況,但如果是,請嘗試將選擇從“Termianl”更改為“gnome-terminal”。
答案4
dirsyncpro 自述文件說它必須在所有非 Windows 作業系統中透過命令列運行。我避免運行 jar 文件,但沒有其他方法。