有如下shell脚本test.sh
#!/bin/bash
b=10
echo $bsh ./test.sh 和 bash ./test.sh
指令在一个新开的子shell终端执行,也就是说sh脚本中的变量不会在当前终端生效,看下面

. ./test.sh 和 source ./test.sh
指令在当前终端执行,变量的定义在当前终端生效


文章讨论了在Linux环境中,使用sh和bash执行shell脚本时变量作用域的不同。通过例子test.sh说明,sh./test.sh和bash./test.sh在子shell中运行,不会影响当前终端的变量;而source./test.sh则会在当前终端执行,使得变量定义生效。
有如下shell脚本test.sh
#!/bin/bash
b=10
echo $bsh ./test.sh 和 bash ./test.sh
指令在一个新开的子shell终端执行,也就是说sh脚本中的变量不会在当前终端生效,看下面

. ./test.sh 和 source ./test.sh
指令在当前终端执行,变量的定义在当前终端生效


741
3237
3万+

被折叠的 条评论
为什么被折叠?
