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

Jac*_*cob 152 macos terminal executable

首先,我正在使用Mac.

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

cd /Users/Jacob/Documents/folderWithFileInIt
bash file.sh
Run Code Online (Sandbox Code Playgroud)

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

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

我的想法是:

a)输入像chmod这样的东西进入终端并更改权限?

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

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

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

Chr*_*age 330

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

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

chmod +x file.command
Run Code Online (Sandbox Code Playgroud)

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

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

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

  • 您还可以使用`cd"\`dirname"$ 0"\`"`将当前工作目录设置为shell skript所在的目录. (41认同)
  • 出于美学原因,您还应该右键单击.command文件并打开信息.在那里,您可以选择隐藏后缀(在名称和后缀下). (2认同)

Nob*_*ift 31

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

  • 你的答案为MacOS做了诀窍......简单快捷 (3认同)

Mar*_*son 13

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

  1. 选择文件
  2. 获取信息(cmd-i)
  3. 在"打开方式"部分中,在弹出菜单中选择"其他..."
  4. 选择终端作为应用程序

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


小智 5

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

文件名应在双引号下.由于我使用Mac->在我的情况下,批处理文件的内容是

cd/Users/yourName/Documents/SeleniumServer

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

它肯定会起作用