我正在寻找一个可以执行以下操作的简单脚本。有人可以尝试一下吗(+如果难以理解,请解释一下它的作用),或者给我一些提示,以便我自己可以运行它?
我想从命令行提示符启动应用程序目录中的 GUI 应用程序,并在必要时为其提供参数:
$> launch Foobar arg1 arg2 arg3
启动 shell 脚本应该做的事情是:
1)读取如下所示的配置文件:
/Applications/$0.app
/Applications/$0
/Applications/**/$0.app
/Applications/**/$0
2)在这种情况下,尝试将第一个参数(“ foobar”)与配置文件的每一行匹配,以“*”代表路径段中的任何字符序列,而“ **”代表任何路径段,并$0
代表程序名称,因此在这种情况下正在寻找foobar.app和foobar。
3)使用指定的其余参数(“arg1”、“arg2”、“arg3”)执行结果命令
听起来很简单,但我现在对 shell 脚本还不太熟悉。我可能最终会使用江苏省数据库因为我知道如何使用它。我只是不确定如何指定名为“launch”的脚本需要 JSDB 程序来运行它,或者它是否与此兼容。
具体用例:如果我在命令提示符下的目录中,我经常想执行以下操作之一:
- 启动textedit创建一个名为x的新文件
- 启动 TextEdit 打开名为 X 的文件
- 启动{您最喜欢的程序的名称}来创建或打开名为 X 的文件
- 在此目录中打开 Finder 窗口
特别是我想编辑我的Mercurial.hg/hgrc 文件,我花了很长时间才弄清楚如何操作,因为 .hg 是一个隐藏在 GUI 文件打开对话框中的目录。我仍然不记得我是如何让它工作的。
答案1
“open” 是您想要的命令。使用它来查看打开选项
open -h
你会发现,要在文本编辑中打开某些内容,只需使用 -e
open -e foo.txt
如果不存在,只需“触摸”该文件并打开它:
touch foo.txt
open -e foo.txt
我认为还有其他应用程序(例如 textmate)是更好的 GUI 编辑器,它们安装了自己的命令行命令(即:mate),可以自动创建文件。
要使用默认编辑器打开当前文件,请不要通过任何切换,因此,如果您的系统在您的系统上与Textedit相关联,则只需使用“ open foo.txt”。
open .
在 Finder 中打开当前目录。
答案2
从终端启动 GUI 应用程序的一种快速方法是使用open -a AppName
。但您无法通过这种方式传递命令行参数。
但是,似乎少数程序甚至接受命令行参数,要求用户写这样的脚本以使用命令行参数mvim
。
您能否提供一个更具体的例子来说明您希望该脚本实现的目标?