macos - 无论 bash 脚本的默认应用程序设置为什么,在终端 (Mac) 中打开一个 shell 脚本

标签 macos bash shell args

我编写了一个 shell 脚本并分发给我的 friend 。在我的电脑上,它运行良好,因为我将 shell 脚本的默认应用程序设置为终端。但是,当我的 friend 打开它时,脚本会在 TextEdit 中打开。有没有办法在启动之前向 shell 脚本添加参数,以便它在终端而不是文本编辑器中打开?

谢谢

PS,我对文件做了 chmod a+x。我还确保将 #!/bin/sh 添加到脚本中。我也一直在使用扩展名 .command、.cmd 和 .tool 进行测试。那会解决我的问题,除非 Gatekeeper 不会让脚本运行,因为我不是注册的 Apple Developer。

最佳答案

如果有一种方法可以让双击文件运行它,那么这就是 Gatekeeper 旨在防止的那种安全漏洞。因此,Apple 已经堵上了他们能想到的任何此类漏洞。

将文件作为 .command 文件发送给您的 friend ,并告诉他们右键单击或按住 Control 单击它并选择打开。这会将 Gatekeeper 对话框更改为警告,但有一个“打开”按钮让他们继续并打开它。系统会提示他们输入管理员密码,以永久记录权限的授予。从那时起,只需双击即可打开它们。

关于macos - 无论 bash 脚本的默认应用程序设置为什么,在终端 (Mac) 中打开一个 shell 脚本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25580918/

相关文章:

macos - 在 Mac OS X Maverick 上安装/编译 NASM 包

由于 key 中包含 "!",Django SECRET_KEY 错误

linux - shell脚本中if else语句中的多个语句

C Linux shell - 重复最近的命令

python - 从文件制作文件夹

Mac 版 Git 安装程序 : Why is/usr/local/git/bin in my PATH?

linux - 如何将 QSetting::NativeFormat 转换为 QSetting::IniFormat?

bash - Shell脚本对编码和行尾是否敏感?

java - Maven:在 POM 不可解析的父级上出现错误

linux - 如何在shell中输出返回码?