问题背景:我在Linux的超级终端中先创建一个shell文件并在文件中对name赋值,然后用bash去执行这个文件,最后为什么不能在指令窗口直接输出name这个变量的值。只有用source执行文件后,才能在指令窗口输出赋值后的变量
[ghp@localhost ~]$ echo $name
[ghp@localhost ~]$ vim name.sh
[ghp@localhost ~]$ cat name.sh
name="zhangsan"
[ghp@localhost ~]$ sh name.sh /*用bash解释器执行脚本后仍然输出不了name变量的值*/
[ghp@localhost ~]$ echo $name
[ghp@localhost ~]$ source name.sh /*但是用source执行脚本却可以输出name变量的值*/
[ghp@localhost ~]$ echo $name
zhangsan
[ghp@localhost ~]$
想要的答案: 其中的详细原因,请求您的不吝赐教,在此万分感谢