第一次发布,请告诉我如何改进..
我创建了一个shell脚本,需要一个人输入他们的名字,然后生成一个报告。当chmod进入可执行脚本并从终端运行时,脚本可以根据需要运行。但是,我想部署它并让它成为双击类型的解决方案,而不是指示人们从终端运行它..
我尝试在Platypus中包装脚本,这样可以轻松启动但是它不允许用户输入,这很关键..
我刚刚发现了cocoaDialog,但我主要担心的是它是否会提供我需要的功能,如果没有其他人安装它就会这样做......
有没有人遇到这种情况,或者可以提供和指示。
谢谢。
答案 0 :(得分:12)
为了记录,我测试了(在OS X Yosemite上)以下脚本(namescript
),它使用read
命令接受用户输入。在chmod +x namescript
之后,双击Finder正确启动脚本并接受用户输入。
#! /bin/bash
echo "Please enter your name"
read name
echo "Your name is $name"
选择没有扩展程序(如namescript
)或.command
扩展程序(namescript.command
)的脚本名称非常重要。默认情况下,使用.sh
(namescript.sh
)会导致双击以在文本编辑器中打开脚本,如OP中所述。
答案 1 :(得分:3)
OS X(大部分)都包含所有电池,只需使用它。 :)
为此,您可以使用Automator.app
。使用Automator,您可以创建包含shell脚本的可执行应用程序(例如your.app
),并询问用户输入。
示例,要求输入两个:" name"和"年"你应该做到以下几点:
year="$1"
name="$2"
echo "Report for name: $name year: $year"
保存脚本(您将获得name.app
- 标准OS X .app
应用程序),只需将其添加到.dmg
或从中创建.zip
即可部署它。
阅读这个答案时,一切都要快得多。 ;)
答案 2 :(得分:2)
根据我的理解,我建议您查看Applescript,因为这将允许您拥有GUI界面以及执行' SHELL'命令。
首先,我会打开脚本编辑器'预装在Mac上的程序
这是一个示例脚本,询问用户的名字,然后通过执行shell命令"说出名称"
display dialog "What is you name? " default answer "" buttons {"Say It"} default button 1
text returned of the result
do shell script "say " & result
您也可以将with administrator privileges
附加到do命令,这将使其以管理员权限运行(询问管理员用户名和密码)
示例:
display dialog "What is you name? " default answer "" buttons {"Say It"} default button 1
text returned of the result
do shell script "say " & result with administrator privileges
希望这会有所帮助。