236打开终端,输入sh /path/to/file,然后按回车键。
更快的方法是输入sh,然后加一个空格,然后将文件拖到窗口上并释放图标。
- Maximus64如果将shell脚本写成其他shell的语法,比如tcsh、zsh或ksh,你认为会发生什么?后缀“sh”表示一个shell脚本,而不是“在这个shell中运行脚本”。 - fd03@fd0 shebang line会处理这个问题。 - user144924当你使用shell shell_script来调用一个shell脚本时,shebang行会被忽略。Shell会将第一行视为注释。 - fd0@fd0,我不明白。从语义上讲,“sh /path/to/file”和替代方案“/path/to/file.sh”有何不同? - Pacerier3@Pacerier- 在第一种形式中,调用用户必须能够读取文件并选择哪个解释器来读取文件。在第二种形式中,调用用户必须对文件具有读取和执行权限,并且解释器由脚本第一行的哈希标记决定。在这两种情况下,内核不会解释文件的后缀名。 - fd0我在.sh文件中运行了启动命令,我是这样做的 > sh 文件名.sh start - Rohit Singh回答链接30或者,你也可以做
cd /directory/with/executable
chmod +x executable # only required if your file is not already executable
./executable
这将使用指定的shell(如果在shebang #!/bin/(shell)中指定)运行可执行文件。
- perhapsmaybeharry21在问题中提到了“运行我从网上下载的脚本”。从互联网下载的文件通常具有权限设置为644。 - nohillside@patrix 我认为这不仅仅是因为互联网,而是因为你的账户中默认掩码的缘故,每个从其他文件系统复制到你的文件系统上的文件都会受到影响。 - rwenz3l回答链接21chmod u+x myfile.sh
cp myfile.sh /usr/local/bin
编辑 ~/.bash_profile 并添加以下行:
alias myfile=./myfile.sh
执行以下命令行:
source ~/.bash_profile
然后你就可以将文件作为程序运行
$ myfile
- Reza Farshi1在Ubuntu中,只要你有#~/bin/sh,你的路径中的任何脚本都可以执行。而在OSX中,脚本应该有.sh扩展名,并且每个脚本都需要一个别名。:-O - Fabrizio Bertoglio回答链接14按照以下步骤运行脚本文件:
右键单击.sh文件。
将鼠标悬停在打开方式上。
选择其他...。
您应该在应用程序文件夹中。打开实用工具文件夹并选择Terminal.app。
如果无法选择Terminal.app,请将启用的应用程序从推荐应用程序更改为所有应用程序。它位于窗口底部。
如果要使用Terminal.app打开每个.sh文件,请勾选始终使用此应用程序打开。
按窗口右下角的打开按钮。
- stwykd回答链接6OP的问题是如何在Finder中运行脚本。上面的Unix解决方案都无法实现这一点。答案是将文件的扩展名设置为.command,例如,script.command。双击它将启动终端并执行脚本。(确保权限被设置为可执行。)
- David M回答链接4下载后无法运行的原因是文件权限不允许。要启用执行权限,请打开终端并输入以下命令:chmod 755 /path/to/script。
您可以从Finder中将脚本拖放到终端窗口中,而不必键入完整路径。
然后,要执行脚本,只需输入/path/to/script。
同样地,您可以将文件拖放到终端窗口中。这个语法应该会使用脚本第一行定义的正确shell来执行脚本。
- Elliott2我的.sh文件在我创建它的文本编辑器中打开。我该如何在终端中打开它呢?我已经设置了正确的权限。 - bart@bart,你需要为在Finder中直接执行脚本添加.command扩展名。 - rwenz3l回答链接