【问题标题】:Run a terminal command without execute permission在没有执行权限的情况下运行终端命令
【发布时间】:2014-08-22 19:59:53
【问题描述】:

我正在尝试在 OS X 上使用 bash 运行终端命令(特别是从命令行启动 Java 应用程序),并将此命令分发给用户。脚本很好,但是完美无缺!

如果我要将它导出为 .command 或 .sh,每个用户都必须打开终端并 chmod +x 来运行它。这对我正在尝试做的事情完全适得其反(为游戏托管服务器的一键式解决方案)。

我需要一种方法来启动此 bash 命令无需更改用户的权限,并且它必须实时显示终端输出。 这意味着不将输出记录到文本文件中 - 需要显示在终端窗口中。

我尝试使用 automator 制作一个应用程序来启动一个 shell 脚本,就 perms 而言它运行良好,但不显示输出。

我尝试使用打开终端然后输入文本的自动机制作一个更具工作流风格的应用程序(既将其作为原始文本输入,也将其作为 shell 脚本输入)。这两个都打开了一个终端窗口,但仍然不显示输出。

我唯一的解决方案是自己设置烫发,压缩文件,然后以这种方式发送。压缩后,文件保留其权限设置。这仍然比我想要的多一步,因为这是我试图发送给可能根本不精通技术的付费用户的东西。

【问题讨论】:

  • 你看我的帖子了吗?这只在本地设置权限(对我来说)。我需要能够将它与我的游戏一起发送给其他用户,而不是让他们设置权限。
  • 可能将其封装为 rpm 或 tar.gz...
  • 为什么不创建一个 .dmg 包。有很多方法可以做到这一点here
  • 如果我想走这条路,我会把它放在一个 zip 文件中。这将包含在我们通过 Steam 分发的实际游戏文件中;在应用程序包中包含光盘映像将非常违反直觉。不过还是谢谢。

标签: java bash shell terminal


【解决方案1】:

如果您的脚本没有执行权限,那么您(和您的用户)始终可以将其作为输入参数传递给 shell,就像:

$ bash myscript

此命令将运行脚本myscript,即使它没有执行权限。将 bash 替换为您要运行脚本的 shell 名称,但很可能是 bash

【讨论】:

  • 重点,就像我在 OP 中所说的,这是一个单击操作。如果用户必须使用终端,我不妨让他们 chmod 我已经给他们的脚本。
猜你喜欢
  • 1970-01-01
  • 2017-09-24
  • 1970-01-01
  • 2012-11-02
  • 1970-01-01
  • 2016-08-18
  • 2018-11-28
  • 2021-12-05
  • 2021-09-06
相关资源
最近更新 更多