Mac“批处理文件”脚本解决方案?

3
在Windows中,我会创建一个.bat文件来从桌面运行此脚本。在我的Mac上,我该如何创建类似的东西,可以从桌面运行以执行此操作?
 defaults write com.apple.finder AppleShowAllFiles TRUE
 killall Finder

由于MacOS是类Unix操作系统,它具有更丰富的脚本编写能力。 - Andrey
4个回答

4
创建一个包含以下内容的文件。
#!/bin/bash
defaults write com.apple.finder AppleShowAllFiles TRUE
killall Finder

从终端.app中运行chmod o+x <filename>使文件可执行。

要运行文件,只需打开终端.app并键入./<filename>


4

将文件命名为.command.sh


将文件重命名为.command会提示我没有足够的权限,但我是管理员。 - Ian Vink
@BahaiResearch.com 我可以将某个东西重命名为 .command 而无需输入密码。也许先尝试复制文件? - jtbandes
@BahaiResearch.com 噢,请确保 .command/.sh 是文件扩展名。像是 myscript.command,而不仅仅是 .command。 - jtbandes
你甚至不需要这样做 - 如果它有一个 shebang 并且具有可执行权限,它可以具有任何扩展名。 - Bryan Oakley
是的,给它一个扩展名最简单。 - jtbandes

2
Shoan的创建shell脚本的指令可以正常运行,但需要在终端中运行。如果你按照jtbandes的建议将文件名后缀改为.command.sh对我无效),则该文件会在Finder中变为可双击的文件——但它仍会打开一个终端窗口,并在完成后保持该窗口打开。如果您不想被这样的问题困扰,有几种方法可以完成工作而不涉及任何多余的用户界面:

1- 在AppleScript编辑器中创建一个AppleScript(位于/Applications/Utilities/AppleScript Editor.app或/Applications/AppleScript/Script Editor.app,具体取决于您使用的OS X版本)。将以下内容输入到您的脚本中:

do shell script "defaults write com.apple.finder AppleShowAllFiles TRUE; killall Finder"

...然后将脚本以应用程序格式保存,这样双击它就可以运行(如果您将其保存为“脚本”,双击它将打开脚本编辑器)。

2- 使用/Applications/Automator创建一个自动化工作流程。使用应用程序模板(同样是为了使其双击),在第二列中找到“运行Shell脚本”操作(它是一个巨大的列表,因此我只需在顶部的搜索字段中键入“shell”),并将其拖到右侧的工作流空间中。确保它设置为使用合理的Shell,粘贴您的命令,然后保存。


0

我曾经使用批处理文件,但痛点在于需要找到脚本所在的文件夹。这变得很麻烦,所以现在我使用别名,在终端的任何位置都可以工作,而不需要找到您的脚本。

当然,您可以很好地将它们一起使用。

要开始使用,您需要访问您的bash_profile。

bash profile是一种存在于您的计算机上的不可见文件,我相信它没有特定的位置就像无家可归的人。

那么如何找到它呢?

嗯,它要么存在,要么不存在,因此要访问该文件,只需编写:

sudo nano ~/.bash_profile 

这个命令将创建它或打开它。
进入后,添加以下行:
alias showFiles='defaults write com.apple.finder AppleShowAllFiles YES; killall Finder /System/Library/CoreServices/Finder.app'
alias hideFiles='defaults write com.apple.finder AppleShowAllFiles NO; killall Finder /System/Library/CoreServices/Finder.app'

就是这样...

ctrl + O to save
ctrl + X to exit

最后刷新bash配置文件:

source ~/.bash_profile

如何使用命令?现在,要显示文件,只需编写:showFiles,要隐藏文件,只需编写:hideFiles... 就这么简单!

我使用它来使终端使用更加轻松。例如,ssh到网站,打开帮助文件或访问mysql等等。

以下是一些可能有用的进一步用途:

alias goWebsite='open http://www,google.com'
alias goDoc='open -a TextEdit /users/myusername/documents/mydocument.txt'
alias goLocation='cd /applications/mamp/htdocs/workspaces/general/website.com/trunk'
alias sshToServer='ssh user@mysite.sitename.com'

现在你只需要在终端中输入别名,命令就会执行。

希望你觉得以上内容有用。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接