如何通过双击使这个file.sh可执行文件?

时间:2011-12-07 03:10:49

标签: macos terminal executable

首先我正在使用Mac。

接下来,我需要执行这个“file.sh”我们会调用它。每次我需要执行它时,我必须打开终端并输入:

cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh

这没关系,但我觉得如果我按双击执行文件会更快,你不觉得吗?

所以我的问题是,如何通过双击使这个文件可执行?

我的想法是:

a)将类似chmod的内容输入终端并更改权限?

b)创建一个文件,将我上面写的代码放在其中^然后使该文件可执行?

c)以某种方式实现自动化吗?

哪种方式最好,还是有更好的方法?另外请尽可能多地解释,我是Terminal的新手。感谢。

5 个答案:

答案 0 :(得分:317)

默认情况下,*.sh文件在文本编辑器(Xcode或TextEdit)中打开。要创建将在打开时在终端中执行的shell脚本,请使用“command”扩展名命名,例如file.command。默认情况下,这些将发送到终端,终端将作为shell脚本执行该文件。

您还需要确保文件是可执行的,例如:

chmod +x file.command

如果没有这个,终端将拒绝执行它。

请注意,在此特定方案中,脚本不必以#!前缀开头,因为Terminal专门安排使用您的默认shell执行它。 (当然,如果要自定义使用哪个shell,或者如果要确保在使用其他shell时可以从命令行执行它,则可以添加#!行。)

另请注意,Terminal在不更改工作目录的情况下执行shell脚本。如果您确实需要使用cd命令来运行特定的工作目录,则需要使用{{1}}命令开始编写脚本。

答案 1 :(得分:28)

完全删除扩展名,然后双击它。大多数系统shell脚本都是这样的。只要它有一个shebang,它就会起作用。

答案 2 :(得分:13)

您可以告诉Finder在终端中打开.sh文件:

  1. 选择文件
  2. 获取信息(cmd-i)
  3. 在“打开方式”部分,在弹出菜单中选择“其他...”
  4. 选择终端作为应用程序
  5. 这与将其重命名为.command具有完全相同的效果,除了......您不必重命名它:)

答案 3 :(得分:5)

  1. 启动终端
  2. 类型 - > nano fileName
  3. 粘贴批处理文件内容并保存
  4. 类型 - > chmod + x fileName
  5. 现在可以创建exe文件,你可以双击它。
  6. 文件名应在双引号下。 由于我使用Mac->在我的情况下,批处理文件的内容是

    cd / Users / yourName / Documents / SeleniumServer

    java -jar selenium-server-standalone-3.3.1.jar -role hub

    它肯定会起作用

答案 4 :(得分:-1)

您可以像这样使用chmod来更改可执行文件

chmod 755 file.sh

并使用此命令执行

./file.sh