Mac OS X:想要简单的脚本

Jas*_*n S 3 terminal shell macos

我正在寻找一个简单的脚本来执行以下操作。任何人都可以尝试一下吗(+ 如果神秘,请解释它的作用),或者给我一些指示,以便我可以自己运行它?

我想从命令行提示符启动 Applications 目录中的 GUI 应用程序,并在必要时为其提供参数:

$> launch Foobar arg1 arg2 arg3
Run Code Online (Sandbox Code Playgroud)

启动 shell 脚本应该做的是:

1) 读取一个如下所示的配置文件:

/Applications/$0.app
/Applications/$0
/Applications/**/$0.app
/Applications/**/$0
Run Code Online (Sandbox Code Playgroud)

2)尝试将本例中的第一个参数(“Foobar”)与配置文件的每一行按顺序匹配,“*”代表路径段中的任何字符序列,“**”代表任何路径段,并$0表示程序名称。因此,在这种情况下,它会在 Applications 目录及其任何子目录中查找 Foobar.app 和 Foobar。

3) 使用指定的剩余参数(“arg1”、“arg2”、“arg3”)执行结果命令

这听起来很简单,但我现在对 shell 脚本来说太陌生了。我可能最终会使用JSDB,因为我知道如何使用它。我只是不确定如何指定一个名为“launch”的脚本应该要求 JSDB 程序运行它,或者它是否与这样做兼容。

特定用例:如果我在命令提示符中的目录中,我经常想要执行以下操作之一:

  • 启动 TextEdit 创建一个名为 X 的新文件
  • 启动 TextEdit 打开一个名为 X 的文件
  • 启动 {name your favorite program} 以创建或打开名为 X 的文件
  • 在此目录中打开 Finder 窗口

特别是,昨天我想编辑我的Mercurial .hg/hgrc 文件,我花了很长时间才弄清楚如何编辑,因为 .hg 是一个隐藏在 GUI 文件打开对话框中的目录。我仍然不记得我是如何让它工作的。

Ted*_*eid 6

“打开”是您想要的命令。使用它来查看打开的选项

open -h
Run Code Online (Sandbox Code Playgroud)

你会看到在 textedit 中打开一些东西,只需使用 -e

open -e foo.txt
Run Code Online (Sandbox Code Playgroud)

如果它不存在,只需“触摸”文件并打开它:

touch foo.txt 
open -e foo.txt
Run Code Online (Sandbox Code Playgroud)

还有其他应用程序(如 textmate),我认为它们是更好的 GUI 编辑器,它们安装自己的命令行命令(即:mate),可以自动创建文件。

要使用默认编辑器打开当前文件,只需不要传递任何开关。因此,如果 .txt 文件在您的系统上与 TextEdit 相关联,则只需使用“open foo.txt”即可。由于目录会自动与 Finder 关联,因此只需使用

open .
Run Code Online (Sandbox Code Playgroud)

在finder中打开当前目录。