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

首先我用的是Mac。

接下来,我需要执行这个我们称之为“file.sh”的文件。每次我需要执行它时,我必须打开终端并键入:

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

这是可以的,但我觉得如果双击文件执行会快得多,你不这么认为吗?

我的问题是,如何通过双击使该文件可执行?

我的想法是:

A)在终端中输入类似chmod的东西并更改权限?

b)制作一个文件,把我上面写的代码放进去^,然后让这个文件可执行?

C)通过某种方式实现自动化?

哪种方式是最好的,还是有更好的方式?也请尽可能多地解释,我刚到航站楼。谢谢。

327024 次浏览

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

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

chmod +x file.command

否则,终端将拒绝执行该命令。

注意,在这个特定的场景中,脚本不必以#!前缀开头,因为Terminal特别安排用默认shell执行它。(当然,如果你想自定义使用哪个shell,或者如果你想确保你可以在使用不同的shell时从命令行执行它,你可以添加#!行。)

还要注意,Terminal执行shell脚本时不会改变工作目录。如果您确实需要在特定的工作目录下运行脚本,则需要使用cd命令开始脚本。例如,你可以使用cd "$(dirname "$0")"将当前工作目录设置为你的shell脚本所在的目录。

你可以告诉Finder在Terminal中打开.sh文件:

  1. 选择文件
  2. 获取信息(cmd-i)
  3. 在“Open with”部分,选择弹出菜单中的“Other…”
  4. 选择终端作为应用程序

这将与将其重命名为.command具有完全相同的效果,除了…你不必重命名它:)

完全删除扩展,然后双击它。大多数系统shell脚本都是这样的。只要它有工作,它就可以工作。

  1. 启动终端
  2. Type -> nano fileName
  3. 粘贴批处理文件内容并保存
  4. Type -> chmod +x fileName
  5. 它将创建exe文件,现在你可以双击它。

文件名称应在双引号下。 因为我使用Mac->在我的情况下,批处理文件的内容是

cd /用户/ yourName /文件/ SeleniumServer

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

它肯定会起作用的

你可以像这样使用chmod来改变可执行文件

chmod 755 file.sh

并使用此命令执行

./file.sh
nano ~/FILENAME

编写bash脚本,使用Ctrl + x退出nano,然后点击y

使文件成为可执行文件

chmod 700 ~/FILENAME

对了,文件变成可执行文件,双击启动

在没有.sh扩展名或shebang (#!)前缀的情况下工作。