首先,我使用的是 Mac。
接下来,我需要执行这个我们将调用它的“file.sh”。每次我需要执行它时,我都必须打开终端并输入:
cd /Users/Jacob/Documents/folderWithFileInIt bash file.sh
这没关系,但我觉得如果我让文件在双击时执行会快很多,你不觉得吗?
所以我的问题是,如何通过双击使该文件可执行?
我的想法是:
a)在终端中输入 chmod 之类的内容并更改权限?
b)创建一个文件,将我上面写的代码放入其中 ^ 然后使该文件可执行?
c)以某种方式进行自动化来做到这一点?
哪种方法最好,或者有更好的方法吗?另外请尽可能多地解释,我是终端的新手。谢谢。
默认情况下,*.sh文件在文本编辑器(Xcode 或 TextEdit)中打开。要创建一个在您打开终端时将在终端中执行的 shell 脚本,请将其命名为“命令”扩展名,例如file.command. 默认情况下,这些被发送到终端,终端会将文件作为 shell 脚本执行。
*.sh
file.command
您还需要确保文件是可执行的,例如:
chmod +x file.command
没有这个,终端将拒绝执行它。
请注意,在这种特定情况下,脚本不必以#!前缀开头,因为终端专门安排使用您的默认 shell 执行它。(当然,#!如果您想自定义使用哪个 shell,或者如果您想确保在使用不同的 shell 时可以从命令行执行它,您可以添加一行。)
#!
另请注意,终端在不更改工作目录的情况下执行 shell 脚本。cd如果您确实需要在特定工作目录下运行脚本,则需要使用命令开始您的脚本。例如,您可以使用cd "$(dirname "$0")"将当前工作目录设置为您的 shell 脚本所在的目录。
cd
cd "$(dirname "$0")"