如何在终端中运行.sh或.command文件


Answers:


103

打开终端,输入sh /path/to/file并按Enter。

键入sh和空格的速度更快,然后将文件拖到窗口中,然后在窗口上的任意位置释放图标。


3
如果用其他Shell的语法(例如tcsh,zsh或ksh)编写Shell脚本,您会怎么办?后缀sh表示外壳程序脚本,而不是“在此外壳程序中运行脚本”。
fd0

3
@ fd0 shebang行将解决此问题。
user14492 '16

4
@ user14492-当您调用shell脚本时,shell shell_scriptshebang行将被忽略。Shell读取第一行作为注释。
fd0

@ fd0,我不明白。如何是sh /path/to/file任何来自替代语义不同/path/to/file.sh
佩里耶

2
@ Pacerier-在第一种形式中,调用用户必须能够读取文件,并选择将由哪个解释程序读取文件。在第二种形式中,必须为调用用户读取并执行文件的权限,并且解释器由脚本第一行上的哈希爆炸决定。在这两种情况下,内核都不解释文件的后缀。
fd0

12

或者,您也可以

cd /directory/with/executable
chmod +x executable     # only required if your file is not already executable
./executable

还会使用指定的外壳程序(如果在shebang中指定)运行可执行文件 #!/bin/(shell)


1
在问题中,它说“运行我在线下载的脚本”。从互联网上通常有权限设置为644下载的文件
nohillside

@patrix我认为这不仅是互联网,而且由于您帐户中的默认掩码,每个文件都已从另一个文件系统复制到您的文件系统中。
rwenz3l

8
chmod u+x myfile.sh
cp myfile.sh /usr/local/bin

编辑~/.bash_profile并添加以下行:

alias myfile=./myfile.sh

执行以下命令行:

source ~/.bash_profile

然后您就可以将文件作为程序运行

$ myfile


在Ubuntu中,只要您具有#~/bin/sh,就可以执行路径中的任何脚本,而在OSX脚本中应具有.sh扩展名,并且alias每个扩展名都有一个。:-O
Fabrizio Bertoglio

6

请按照以下步骤运行脚本文件:

  1. 右键单击.sh文件。

  2. 将鼠标悬停在打开时

  3. 选择其他...

  4. 您应该位于“ 应用程序”文件夹中。打开“ 实用工具”文件夹,然后选择“ Terminal.app”。

  5. 如果无法选择Terminal.app,请将启用的应用程序从“ 推荐的应用程序”更改为“ 所有应用程序”。它在窗口的底部。

  6. 如果要.sh使用Terminal.app 打开每个文件,请选中始终打开方式

  7. 按下窗口右下角的“ 打开”按钮。


3

下载后无法使用的原因是文件权限不允许。要启用执行权限,请打开Terminal并输入 chmod 755 /path/to/script。您可以将脚本从Finder拖到“终端”窗口中,而不必输入完整路径。然后,要执行,只需输入 /path/to/script。同样,您可以将文件拖放到“终端”窗口中。此语法应使用脚本第一行中定义的正确外壳程序来执行脚本。


我的文件.sh在创建文件的文本编辑器中打开。我该如何在终端中打开它?我设置了正确的权限。
巴特

@bart您需要添加.command扩展名以直接在finder中执行脚本。
rwenz3l
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.