从OS X Dock执行Shell脚本?
如何设置一个shell脚本以便从Mac OSX Dock中执行?看起来,简单地创建一个快捷方式将在我的编辑器中打开该文件。有没有我需要设置的标志来告诉它运行而不是打开它进行编辑?从OS X Dock执行Shell脚本?
您可以创建一个工作流的Automator的足下 - “运行Shell脚本”
然后File > Save As
,并更改文件格式为“应用程序”。当您打开应用程序时,它将运行Shell脚本步骤,执行该命令,完成后退出。
好处是它的确实是很简单,你可以非常容易地得到用户输入(比如选择一堆文件),然后将它传递给shell脚本的输入(stdin,或作为参数)。
(Automator的是在你的/Applications
文件夹!)
我觉得这个线程可能会有所帮助:http://forums.macosxhints.com/archive/index.php/t-70973.html
套用,你可以用.command扩展其重命名或创建一个AppleScript来运行shell。
至少在Snow Leopard上,向脚本添加.command扩展名会使其在终端中运行,如果您双击该脚本,但出于某种原因您仍然无法将其拖入停靠栏中。但是,dbr和Jeremy的建议都为我工作。 – 2010-12-03 13:25:13
这不适用于OSX 10.9 Mavericks。 – stiemannkj1 2014-06-13 02:24:16
如果您不需要终端窗口,只需将example.sh
移动到example.sh.app/Contents/MacOS/example.sh
即可创建任何可执行文件。您可以将应用程序像任何其他应用程序一样放置在您的Dock中,并通过单击来执行它。
如果你确实需要显示终端窗口,我没有一个简单的解决方案。你可能可以用Applescript做点什么,但这不是很干净。
只要您的脚本是可执行文件,并且没有任何扩展名,您可以将它原样拖到Dock的右侧(文档侧),它将在单击时在终端窗口中运行,而不是打开编辑。
如果你想有一个扩展名(比如foo.sh),你可以到Finder的文件信息窗口并且改变该特定脚本的默认应用程序(TextEdit,TextMate,无论设置了什么默认值在您的计算机上.sh文件)到终端。然后它将执行而不是在文本编辑器中打开。再次,您将不得不将其拖动到Dock的右侧。
在脚本编辑器:
do shell script "/full/path/to/your/script -with 'all desired args'
“
另存为一个应用程序包
由于只要你想要做的就是得到脚本的效果,这将工作正常。你不会看到STDOUT或STDERR。
我知道这是旧的,但如果它是帮助他人:
如果您需要运行一个脚本,并希望终端弹出,所以你可以看到你可以像深渊骑士说,研究结果和将扩展名更改为.command。如果你双击它,它会打开一个终端窗口并运行。
我不过需要这个从automator或者appleScript运行。因此,为了打开一个新终端,我从“运行shell脚本”运行的命令是“打开myShellScript.command”,并在新终端中打开。
正如乔提到的,创建shell脚本,然后创建一个调用shell脚本的applescript脚本,将会实现这一点,并且非常方便。
Shell脚本
-
在你喜欢的文本编辑器中创建您的shell脚本,例如:
mono "/Volumes/Media/~Users/me/Software/keepass/keepass.exe"
(此运行W32可执行文件,使用单框架)
保存shell脚本,对于我的示例“StartKeepass.sh”
苹果脚本
-
打开的AppleScript编辑器,并调用shell脚本
do shell script "sh /Volumes/Media/~Users/me/Software/StartKeepass.sh" user name "<enter username here>" password "<Enter password here>" with administrator privileges
-
do shell script
- AppleScript的命令来调用外部shell命令 -
"sh ...."
- 这是你的shell脚本(完整路径)在步骤中创建(您也可以直接运行的命令,我可以省略shell脚本,只是运行我的单指令这里) -
user name
- 宣告的AppleScript要为特定的用户身份运行命令 -
"<enter username here>
- 替换为您的用户名(保持引号)前 “乔希” -
password
- 宣告AppleScript的密码 -
"<enter password here>"
- 与您的密码(保持报价)EX “将mypass” -
with administrative privileges
更换 - 宣称要作为管理员身份运行
-
建立您.APP
您的AppleScript RunKeepass.scpt
保存为filename.scpt,在我的案件另存为...您的AppleScript和更改文件格式应用程序,导致RunKeepass.app在我的情况
您的应用程序文件复制到您的apps文件夹
有人写...
我只设置在“.SH”结束与终端,打开所有文件。它的作品 罚款,你不必改变你想要运行的每个shell脚本的名称。
在OSX小牛:
- 创建您的shell脚本。
-
让你的shell脚本可执行:
chmod +x your-shell-script.sh
-
重命名你的脚本有
.app
后缀:mv your-shell-script.sh your-shell-script.app
- 将脚本OSX的码头。
-
重命名你的脚本回
.sh
后缀:mv your-shell-script.app your-shell-script.sh
- 右键单击Finder中的文件,然后点击“获取信息”选项。
- 在窗口的底部,将shell脚本设置为使用终端打开。
现在,当您点击停靠栏中的脚本时,会弹出一个终端窗口并执行脚本。
奖励:要在脚本完成时让终端关闭,请将exit 0
添加到最后,并将终端设置更改为“关闭shell,如果干净地退出”就像它在this SO answer中所做的那样。
应该只为头像+1,尽管我也很喜欢这个话题。 – 2010-08-17 08:37:36