我知道它,忘记它,重新学习它。是时候写下来了。
当前回答
添加一点,在同一个文件夹中运行解释器,仍然使用#!脚本中的Hashbang。
例如,从/usr/bin复制的php7.2可执行文件位于一个文件夹中,该文件夹中有一个hello脚本。
#!./php7.2
<?php
echo "Hello!";
运行它:
./hello
它们的行为是一样的:
./php7.2 hello
具有良好文档的适当解决方案可以是linuxdeploy和/或appimage工具,这是在底层使用这种方法。
其他回答
如果你想让脚本在当前shell中运行(例如,你想让它能够影响你的目录或环境),你应该说:
. /path/to/script.sh
or
source /path/to/script.sh
例如,注意/path/to/script.sh可以是相对的。Bin /script.sh运行当前目录下Bin目录下的script.sh。
要启动shell脚本'file.sh':
sh file.sh
bash file.sh
另一个选项是使用chmod命令设置可执行权限:
chmod +x file.sh
现在运行.sh文件,如下所示:
./file.sh
文件扩展名.命令被分配给Terminal.app。双击任何.command文件将执行它。
首先,给予执行许可:- Chmod +x script_name
如果脚本不可执行:- 运行sh脚本文件:- sh script_name 运行bash脚本文件:- bash script_name 如果脚本可执行:- 。/ script_name
注意:你可以使用'ls -a'来检查文件是否可执行。
对于伯恩壳:
sh myscript.sh
bash的:
bash myscript.sh