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/

相关文章:

linux - shell形式的docker入口点可以使用运行时命令args吗?

linux - 在与 nohup 兼容的 shell 脚本中替代 ls

ruby - 如何在 ruby​​ 中触发键盘事件?

macos - 无法在 Mac 上关闭 tomcat 服务

regex - sed ubuntu vs mac 正则表达式

macos - sudo open -e ~/.bash_profile Permission denied mac

bash - 从 bash 中的文件夹内容的子集中获取最新文件

c++ - 将 C 或 C++ 文件作为脚本运行

shell - 将 SFTP 输出捕获到变量时出现问题

objective-c - 启用僵尸后 EXC_BAD_ACCESS 消失