Linux 中 export 命令 对变量发挥什么作用 ?
一个变量创建时,它不会自动的被在它之后创建的shell
进程(子进程)所知;这时,可用export
命令向后面的shell
传递变量的值。export
命令用于将shell
变量输出为环境变量,或者将shell
函数输出为环境变量。
参数:
-f
:代表[变量名称]中为函数名称。-n
:删除指定的变量;实际未删除,只是不会输出到后续指令的执行环境中。-p
:显示所有的shell
赋予子程序的环境变量。
001、 两种变量:普通变量和环境变量
(base) [root@pc1 test02]# ls a.txt (base) [root@pc1 test02]# cat a.txt ## 准备一个测试文件 01 02 03 04 05 06 07 08 09 10 11 12 (base) [root@pc1 test02]# aa=2 ## 定义一个变量aa (base) [root@pc1 test02]# cut -d " " -f $aa a.txt ## 在当前的sheel终端,根据输出结果,可以判断aa的环境变量生效 02 06 10 (base) [root@pc1 test02]# echo 'cut -d " " -f $aa a.txt' > test.sh ## 然后将该命令输出到一个文本文件中 (base) [root@pc1 test02]# cat test.sh ## 查看输出结果 cut -d " " -f $aa a.txt (base) [root@pc1 test02]# bash test.sh ## 运行该脚本; 报错,说明在脚本文件中aa变量不能被识别 cut: invalid byte, character or field list Try 'cut --help' for more information. (base) [root@pc1 test02]# export aa=2 ## 此时在定义aa变量的前面增加关键字 export (base) [root@pc1 test02]# cat test.sh cut -d " " -f $aa a.txt (base) [root@pc1 test02]# bash test.sh ## 执行该脚本文件,成功执行,说明aa变量可以被识别; 说明export命令 增加了 aa变量的作用范围, 扩大了作用域?? export的这种作用称作什么?? 导出属性? 02 06 10
002、 如何区分在不适用export关键字 和 使用export关键字的变量
(base) [root@pc1 test02]# aa=100 ## 不使用export关键字,定义变量aa (base) [root@pc1 test02]# export -p | tail ## 查看是否在export定义的变量目录中, 没有出现aa变量 declare -x SSH_CLIENT="192.168.164.1 51663 22" declare -x SSH_CONNECTION="192.168.164.1 51663 192.168.164.129 22" declare -x SSH_TTY="/dev/pts/2" declare -x TERM="xterm" declare -x USER="root" declare -x XDG_DATA_DIRS="/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share" declare -x XDG_RUNTIME_DIR="/run/user/0" declare -x XDG_SESSION_ID="3" declare -x _CE_CONDA="" declare -x _CE_M="" (base) [root@pc1 test02]# export aa=100 ## 使用export关键字,定义变量aa (base) [root@pc1 test02]# export -p | tail ## 查看是否在export定义的变量目录中, 出现aa变量 declare -x SSH_CONNECTION="192.168.164.1 51663 192.168.164.129 22" declare -x SSH_TTY="/dev/pts/2" declare -x TERM="xterm" declare -x USER="root" declare -x XDG_DATA_DIRS="/root/.local/share/flatpak/exports/share:/var/lib/flatpak/exports/share:/usr/local/share:/usr/share" declare -x XDG_RUNTIME_DIR="/run/user/0" declare -x XDG_SESSION_ID="3" declare -x _CE_CONDA="" declare -x _CE_M="" declare -x aa="100"
。
参考:
01、https://blog.csdn.net/Xminyang/article/details/125117111
【推荐】国内首个AI IDE,深度理解中文开发场景,立即下载体验Trae
【推荐】编程新体验,更懂你的AI,立即体验豆包MarsCode编程助手
【推荐】抖音旗下AI助手豆包,你的智能百科全书,全免费不限次数
【推荐】轻量又高性能的 SSH 工具 IShell:AI 加持,快人一步
· Manus重磅发布:全球首款通用AI代理技术深度解析与实战指南
· 被坑几百块钱后,我竟然真的恢复了删除的微信聊天记录!
· 没有Manus邀请码?试试免邀请码的MGX或者开源的OpenManus吧
· 【自荐】一款简洁、开源的在线白板工具 Drawnix
· 园子的第一款AI主题卫衣上架——"HELLO! HOW CAN I ASSIST YOU TODAY
2022-11-12 python 中统计fasta文件中每条scaffold中碱基的数目
2022-11-12 linux 中shell 脚本将 gff文件转换为bed文件
2020-11-12 ansible