為什麼這篇ubuntu執行檔案鄉民發文收入到精華區:因為在ubuntu執行檔案這個討論話題中,有許多相關的文章在討論,這篇最有參考價值!作者OSDBNetwork (路人甲)標題Re: [問題] 點兩下可執行指令的sh怎麼寫?時間Tue...
※ 引述《qwerty754892 (Q仔)》之銘言:
: 標題: [問題] 點兩下可執行指令的sh怎麼寫?
: 時間: Wed Aug 15 12:43:22 2018
:
:
: 各位鄉民午安
: 最近因工作需要被要求使用ubuntu
: 不過全公司都沒有人會用
: 自行摸索一下大概會用一些
:
: 有個工作內容是要執行指令查詢軟體運行進度
: 但每次都要在特定路徑開啟終端機
: 然後輸入制式化的指令
: 十分麻煩
:
: 記得在windows可以做一個bat檔
: 點兩下就可以執行批次檔
: 但在linux下,我直接文本輸入的指令
: 改了允許檔案作為程式執行功能
: 還是不能做到這件事,每次都用文本開啟
: 快把我逼瘋了 誰來救救我呢?
:
: https://i.imgur.com/BeJfU6x.jpg
![](https://cache.ptt.cc/c/https/i.imgur.com/BeJfU6xl.jpg?e=1726210698&s=eXGyKcxQpVqWTyf3dfYk2w)
: /home/ct/status
: 當然還有其他複雜的,但先解決簡單的吧…
:
: 而且右鍵查看可執行的方式並沒有終端機這個選擇
: http://i.imgur.com/MXiE6jz.jpg
![](https://cache.ptt.cc/c/https/i.imgur.com/MXiE6jzl.jpg?e=1726176839&s=GmuKY-7d_FjpZB7BhzXrZg)
環境 : Ubuntu 16.04.1 LTS
[預先準備] test.sh
指令 vi test.sh
檔案內容
#!/bin/bash
echo Hello World
echo Hello World 2
read -n 1 -s -r -p "Press any key to continue"
指令 chmod +x test.sh
[方法1] 透過 DoubleClick1.desktop 呼叫 test.sh
系統預設點選 View executable text files when they are opened
( https://i.imgur.com/N4wljW4.png )
![](https://cache.ptt.cc/c/https/i.imgur.com/N4wljW4l.png?e=1726215966&s=C520gnhXzo6G0gZae0fODQ)
指令 vi DoubleClick1.desktop
檔案內容
[Desktop Entry]
Type=Application
Terminal=true
Name=DoubleClick1
Icon=utilities-terminal
Exec=gnome-terminal -e "bash -c '/home/john/Desktop/test.sh'"
Categories=Application;
指令 chmod +x DoubleClick1.desktop
桌面點選 DoubleClick1 即可執行
[方法2] 透過 DoubleClick2.sh 呼叫 test.sh
系統自行點選 Run executable text files when they are opened
( https://i.imgur.com/Y8aZrCl.png ) ([方法1]也行)
![](https://cache.ptt.cc/c/https/i.imgur.com/Y8aZrCll.png?e=1726171351&s=MxO_eQU-ov639iUKATxw2g)
指令 vi DoubleClick2.sh
檔案內容
gnome-terminal -e "bash -c '/home/john/Desktop/test.sh'"
指令 chmod +x DoubleClick2.sh
桌面點選 DoubleClick2.sh 即可執行
------
test.sh的檔案路徑要用絕對路徑
:
: --
: ※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 117.19.84.19
: ※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1534308205.A.83C.html
: 推 Bencrie: 圖上面不是有「執行軟體」? 08/15 12:53
: → qwerty754892: 那個選下去不是直接指令欸 08/15 12:54
: → qwerty754892: 繞圈圈繞很久 然後什麼事情都沒有發生 幾乎都試過了 08/15 12:55
: 推 Bencrie: 在那裡點執行本來就不會有 terminal 視窗啊 08/15 13:12
: → qwerty754892: 那請問我該如何做呢?我想點兩下直接執行指令 08/15 13:19
: → kdjf: 你是想要跳出terminal顯示執行結果嗎? 08/15 13:44
: → kdjf: 欸等一下 你的script想幹嘛可以說一下嗎? 覺得你應該搞錯了 08/15 13:47
: → qwerty754892: 我的指令輸進去會跳出某程式運行的狀態 像這樣 08/15 14:00
: → qwerty754892: https://i.imgur.com/BbSRiZu.jpg 08/15 14:02
![](https://cache.ptt.cc/c/https/i.imgur.com/BbSRiZul.jpg?e=1726179589&s=DtyPcvOEjUWNTSGoEpgx3Q)
: 推 Bencrie: 電腦斷層影像 XD 我相信他有跑,只是你看不到結果 08/15 14:05
: → qwerty754892: 對呀 我知道他有跑 但我要隨時看他的狀態 08/15 14:10
: → qwerty754892: 結果我也看得到 只是每次都要輸入一堆有的沒的很累 08/15 14:11
: → qwerty754892: 想寫像bat的批次檔直接執行指令 比較快 省事 08/15 14:12
: 推 Bencrie: script 改成 gnome-terminal -x sh -c "/home/ct/status; 08/15 14:17
: → Bencrie: read -p 'Press any key to continue...' UNUSED" 08/15 14:18
: → qwerty754892: 那請問開啟方式要用哪個?我現在點開還是文檔編輯 08/15 15:04
: 推 b0920075: 在終端機執行就好了吧,為什麼一定要用點的 08/15 16:04
: → b0920075: 在bashrc寫一個alias,之後在terminal輸入指令就好了吧 08/15 16:05
: → qwerty754892: 痾……比較直觀?因為我看別人可以啊 為什麼我不行 08/15 17:20
: → qwerty754892: 然後第二個拍謝我看不懂 qq 08/15 17:20
: → qwerty754892: 而且我原本開終端機指令就一條 如果現在又要弄那麼 08/15 17:22
: → qwerty754892: 多東西 何必?主要就是想學著寫傻瓜程式,給下一個 08/15 17:22
: → qwerty754892: 同事/長官直接無腦上手啦 這是我的小願景 08/15 17:22
: 推 OSDBNetwork: https://bit.ly/2MrthE9 參考看看 08/15 18:05
: → rexsony: 照原Po的文字態度,知道也不想說。大概是這樣 08/15 19:22
: → rexsony: 還是回去寫Windows吧 08/15 19:23
: → qwerty754892: o大 謝謝,我再研究一下 看起來接近真相了!!! 08/15 20:10
: → qwerty754892: r大拍謝我有點看不懂我知道啥 win我也是略懂而以 但 08/15 20:12
: → qwerty754892: 謝謝你沒噓我 我會繼續努力學習 08/15 20:12
: → qwerty754892: 啊啊 我再看一次看懂了 不好意思冒犯您了 若知道還 08/15 20:15
: → qwerty754892: 請您多幫忙 我查了蠻多網站都有人問這類問題,不過 08/15 20:15
: → qwerty754892: 方法都不太一樣 綜合混雜也是每一個定論 但我是誠心 08/15 20:15
: → qwerty754892: 發問的 再次向您致歉 不知道那句有冒犯到您。對不起 08/15 20:15
: 推 Bencrie: 你的 script 有加 #!/bin/sh?屬性有 +x? 08/15 21:31
: → qwerty754892: 第一行 #!/bin/bash 或/sh都試過 預設開啟還是文本 08/15 21:49
: → qwerty754892: 屬性+x是………? 08/15 21:50
: → qwerty754892: https://i.imgur.com/AgNpBhz.jpg 自己爬文找到解決 08/15 21:51
![](https://cache.ptt.cc/c/https/i.imgur.com/AgNpBhzl.jpg?e=1726203742&s=Eiyna1yarroxyUR2mWemGw)
: → qwerty754892: 執行指令後也不會自動關閉 完全符合我的需求 08/15 21:51
: → qwerty754892: 不過這樣好像只能執行單行的簡單指令?如果要換行不 08/15 21:52
: → qwerty754892: 知道要怎麼用 還是想學scrpit要怎麼寫 08/15 21:52
: → qwerty754892: https://i.imgur.com/KPHtNMi.png 08/15 21:55
![](https://cache.ptt.cc/c/https/i.imgur.com/KPHtNMil.png?e=1726202601&s=TprXt7NsgRHRHRBJ8_3I9A)
: → qwerty754892: r 要用sudo另外安裝 依序設定完後雙擊檔案可以變成 08/15 21:55
: → qwerty754892: 執行模式而不是文本開啟了!! 那請問b大的方法是? 08/15 21:55
: 推 sppmg: 屬性x Google: chmod 。Linux中是否可執行由是否具有x屬性 08/15 23:56
: → sppmg: 決定,而非副檔名。 Debian中帶x的會詢問要執行還是開文檔 08/15 23:56
: → sppmg: , Ubuntu我就不知了。 08/15 23:56
: → sppmg: 我覺得文字、態度沒什麼問題啊!只不過是想點兩圖示執行罷 08/16 00:00
: → sppmg: 了。對日常使用不是終端機的人來說,當然還是弄個圖示方便 08/16 00:00
: → sppmg: 。以我來說,就算寫個 script ,有時也是建個圖示到工作列 08/16 00:00
: → sppmg: 。最簡單像是 sync ,沒事多按幾下 XD。 08/16 00:00
: 推 Bencrie: sync 可以按 magic key 啊 XD 08/16 00:59
: → hijkxyzuw: 要寫 launcher 吧 08/18 11:48
: → hijkxyzuw: 桌面右鍵應該有個建立啟動器,把指令寫成指令檔路徑 08/18 11:53
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 122.121.235.139
※ 文章網址: https://www.ptt.cc/bbs/Linux/M.1534817145.A.F53.html