Linux 导出此代码的shell变量输出

Linux 导出此代码的shell变量输出,linux,shell,unix,sh,Linux,Shell,Unix,Sh,基本上我有一个shell脚本,我想知道代码执行后x的值是多少。导出在shell脚本中做什么 export x=4 bash echo $x x=100 echo $x exit echo $x 理论上,echo会说[按顺序]: 4 100 然后脚本退出,但是您可以从终端手动输入最后一个echo,它会说 4 “导出”,从我收集的内容来看就像windows环境变量 user@machine~$export declare -x ..... 因此,从终端中的base命令中列出的所有内容都是$U

基本上我有一个shell脚本,我想知道代码执行后x的值是多少。导出在shell脚本中做什么

export x=4
bash
echo $x
x=100
echo $x
exit
echo $x

理论上,echo会说[按顺序]:

4
100
然后脚本退出,但是您可以从终端手动输入最后一个echo,它会说

4
“导出”,从我收集的内容来看就像windows环境变量

user@machine~$export
declare -x .....



因此,从终端中的base命令中列出的所有内容都是$USER$LANG$HOME$SHELL,它们都可以用于将全局变量插入脚本中。比如说,

#!/bin/bash
mkdir /$HOME/newdir
touch /$HOME/newdir/newfile
您输入的命令将具有不同的输出,这取决于您是在终端中键入命令还是从脚本运行命令。如果从脚本运行,那么x将等于通过“导出”或通过“x=3”在本地为其赋值的最后一个对象

脚本将保留最后分配的值,直到退出。“导出”将永远保存变量


当你用谷歌搜索这个问题时,你发现了什么?嗨,先生,你不能给谷歌一行代码。我想知道x tooStack Overflow的输出是一个用于编程和开发问题的站点。这个问题似乎离题了,因为它与编程或开发无关。请参见帮助中心中的。也许或者是一个更好的提问的地方。“我想知道代码执行后x的值是多少”-你可以看到值,它在最后被回响。你试过运行这个吗?为什么不呢?是否尝试了
帮助导出
?环境变量不是全局变量,它们被复制到子进程(在Linux ad Windows上也是如此)。“导出”将永远保存变量。这是非常误导的,它不会永远保存变量,而是将其复制到子进程。Windows和Linux/UNIX环境变量之间的主要区别在于,在Windows上,可以从注册表(HKEY_LOCAL_MACHINE/environment和HKEY_CURRENT_USER/environment)设置变量,但在Linux/UNIX上,可以在各种启动文件中设置变量(通常为/etc/profile和$HOME/.profile,但还有更多)。在这两种情况下,程序也可以自行设置。Windows中与
cmd.exe
中的
export
等效的方法就是
set
一个变量。在
cmd.exe
中,所有变量都是环境变量。另一个区别是Windows环境变量名称不区分大小写,但在Linux/UNIX中是。我是conf用于解释为什么SET xxx yyyy会提供不同的结果,如果所有变量都是环境变量,那么xx=yy和DOSKEY xx=yy。但是,在WIN中,我想我通常是GUI婴儿。“导出”将永远保存变量这是非常误导人的,我试图避免说像导出这样的东西是存储变量的一种更非易变的方式,显然我不应该这么说