2013-12-17 35 views
0

我有一個Shell腳本文件。在它裏面,我已經在放置sh文件的同一個文件夾中創建了一個文本文件。使sh可執行文件像在窗口中的exe文件一樣

我想雙擊運行sh文件。當用戶雙擊sh文件時,sh文件將被執行並且一個文本文件應該在相同的目錄中生成。

我知道我可以使用使可執行文件:chmod +x myfile.sh 但問題是:

當我運行在其它機器或者同一臺機器上這個文件用不同的 驅動,我需要再次執行。我想要在Windows中像「exe 文件」一樣的行爲。

+0

什麼類型的文件系統,你要複製這個腳本,它失去了它的可執行位?嘗試傳遞'tar'檔案並從'tar'解壓縮,這可能會保留這些位。 – woolstar

+0

woolstar @我正在使用Ubuntu 12.04。我在這臺機器上生成可執行文件,並將它複製到pendrive上,當它從其他機器上的pendrive(我的朋友的機器 - Ubuntu 10.04)上運行時,它不起作用。 – Rickyrock

+0

筆式驅動器格式化爲FAT嗎?或ext3? – woolstar

回答

0

您能右鍵單擊該文件並選擇properties。選中Allow executing file as a program

+0

我也做過。但它不起作用。我需要通過終端和更改權限:chmod + x myfile.sh – Rickyrock

+0

如果它不工作。也許你正在執行的文件不是你當前用戶所有的。嘗試使用chown myfile.sh – vahnevileyes

1

如果將文件複製到其文件系統不支持Linux權限模型的驅動器,則將失去這些權限。解決方法是使用Linux友好的文件系統(重新格式化驅動器,使用例如ext2文件系統),但較少入侵的解決方法是將文件存儲在確保權限的容器中(例如tar文件)並將其從到目標系統。

如果您需要支持只能學習用鼠標單擊並拖動的用戶,則只有第一個選項是可行的。

如果目標系統可以訪問互聯網,也許最簡單的方法就是將文件放在服務器上,然後在文本棒上放一個帶有下載URL的文本文件。

+0

trpleee @我也試過了。我把我的文件放在服務器上,並把鏈接下載。下載文件後,當我雙擊文件,進程仍在繼續,但沒有發生。 – Rickyrock

+0

如果我能解釋你的描述,聽起來像一個無關的問題。如果下載的文件具有正確的內容和正確的權限,我會建議我們在這裏完成。 – tripleee