相关博客
[Blog-1]: Base语法-Bash选项设置:Set命令
[Blog-2]: Bash语法-命令说明:set、export
易混淆点
- windows系统bat脚本中,通过SET关键字设置环境变量
- Bash中的容易由unset,误联想set也可设置变量
正解
- bash中通过
TEST="123"
的形式设置变量,只在当前进程生效; - bash中通过
export TEST="123"
的形式设置环境变量,对当前进程及子进程都生效; - bash中,将
export TEST="123"
写入.bashrc
等文件中,实现持久化的效果; - bash中的
set
关键字,只能用来设置shell属性(set -x)
和位置参数($1 $2)
。
示例
- 临时变量,当前会话(进程)中生效
|
|
- 设置临时变量,无法在当前进程的子进程中生效
注意命令中的引号,等同于执行脚本中,echo变量
|
|
- export环境变量,在子进程中生效
|
|
- set设置位置参数
下面命令输出为:foo=baz 22 33
|
|
- set设置shell属性
更多信息可参考博客:Base语法-Set命令与Shell选项设置,或者官方文档linux-Set命令说明,也可执行
help set
总结
Bash中 set
用于设置shell属性
和位置参数
; export
关键字用来标记要导出的变量,未导出的变量不会被子进程继承。如果需要持久化,需要将export
命令写到.bashrc
这类文件中。
参考
[注1]: linux-Set命令说明
[注2]: linux-Export命令说明