在Linux系统中,我们可以使用多种方式执行Shell脚本。本文将介绍四种常用的方法:source、sh、bash、./。这些方法之间有一些区别,本文将详细讲解它们的区别。
source命令
source命令用于在当前Shell环境中执行指定的Shell脚本。使用source命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用source命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="John"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用source命令执行上面的脚本:
source script.sh
在上面的命令中,我们使用source命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
Hello, John!
sh命令
sh命令用于在新的Shell环境中执行指定的Shell脚本。使用sh命令执行脚本时,脚本中的变量和函数将不会在当前Shell环境中生效。例如,我们可以使用sh命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="John"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用sh命令执行上面的脚本:
sh script.sh
在上面的命令中,我们使用sh命令执行了script.sh脚本。脚本中定义的变量和函数将不会在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
bash: hello: command not found
bash命令
bash命令用于在新的Bash Shell环境中执行指定的Shell脚本。使用bash命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用bash命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="John"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用bash命令执行上面的脚本:
bash script.sh
在上面的命令中,我们使用bash命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
Hello, John!
./命令
./命令用于在当前目录下执行指定的Shell脚本。使用./命令执行脚本时,脚本中的变量和函数将在当前Shell环境中生效。例如,我们可以使用./命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="John"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用./命令执行上面的脚本:
./script.sh
在上面的命令中,我们使用./命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
Hello, John!
示例说明
示例1:使用source命令执行脚本
我们可以使用source命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="Alice"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用source命令执行上面的脚本:
source script.sh
在上面的命令中,我们使用source命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
Hello, Alice!
示例2:使用./命令执行脚本
我们可以使用./命令执行一个简单的Shell脚本:
#!/bin/bash
# 定义变量
NAME="Bob"
# 定义函数
hello() {
echo "Hello, $NAME!"
}
# 执行函数
hello
我们可以使用./命令执行上面的脚本:
./script.sh
在上面的命令中,我们使用./命令执行了script.sh脚本。脚本中定义的变量和函数将在当前Shell环境中生效。我们可以执行hello函数来验证它是否生效:
hello
输出结果如下:
Hello, Bob!
本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:详解shell中source、sh、bash、./执行脚本的区别 - Python技术站