您可以通过两种不同的方法来执行此操作:
使其他脚本可执行, #!/bin/bash
行,并在 $ PATH 环境变量中添加文件所在的路径。然后,您可以将其作为普通命令来调用;
或使用如下所示的source
命令(别名是.
)来source /path/to/script
;
或使用bash
命令执行它: /bin/bash /path/to/script
;
第一个和第三个方法将脚本作为另一个过程执行,因此另一个脚本中的变量和函数将不可访问。
第二种方法在第一个脚本的过程中执行该脚本,并从另一个脚本中提取变量和函数,以便可以从调用脚本中使用它们。
在第二种方法中,如果您exit
,它将也退出第一个脚本。第一种和第三种方法不会发生这种情况。
看一下这个。
#!/bin/bash
echo "This script is about to run another script."
sh ./script.sh
echo "This script has just run another script."
您可以通过两种方法来执行此操作。终端执行脚本:
#!/bin/bash
SCRIPT_PATH="/path/to/script.sh"
# Here you execute your script
"$SCRIPT_PATH"
# or
. "$SCRIPT_PATH"
# or
source "$SCRIPT_PATH"
# or
bash "$SCRIPT_PATH"
# or
eval '"$SCRIPT_PATH"'
# or
OUTPUT=$("$SCRIPT_PATH")
echo $OUTPUT
# or
OUTPUT=`"$SCRIPT_PATH"`
echo $OUTPUT
# or
("$SCRIPT_PATH")
# or
(exec "$SCRIPT_PATH")
所有这些对于带空格的路径都是正确的!!!