variable.md 环境变量 vs 自定义变量(Shell变量)
eagleoflqj opened this issue · 2 comments
eagleoflqj commented
env或printenv输出的是环境变量,而BASHPID、BASHOPTS、PS1、PS2、RANDOM通常不属于环境变量,不会被printenv输出(其实UID也不会输出,但不知为何USER会),只能被set输出。
https://stackoverflow.com/questions/41931855/why-env-does-not-print-ps1-variable
https://askubuntu.com/questions/960551/why-arent-variables-like-ps1-in-printenv
eagleoflqj commented
IFS作为词间分隔符,默认为空格、\t和\n
set | grep 'IFS=' # 输出默认值$' \t\n'
s=$'a\tb'
for x in $s; do echo $x; done # 输出两行
IFS=' '
for x in $s; do echo $x; done # 只输出一行,因为此时分隔符为空格onlyruanyf commented
这里不区分环境变量和系统变量,否则教程有点复杂。