本地变量:
变量赋值:name=value
变量引用:${name} , $name
"":变量名会替换为其值
'':变量名不会替换为其值
查看变量: set
撤销变量:unset name
notice : 此处非变量引用------>>>>此处设置的变量只对当前终端bash/shell起作用 对其子shell 都不起作用
环境变量:
变量赋值:
(1) export name=value
(2) name=value;export name
(3) declare -x name = value
(4) name = value ; declare -x name
变量引用: ${name} , $name
notice: bash内嵌了许多环境变量(通常为全大写字符),用于定义bash的工作环境
PATH, HISTSIZE HISTFILE HISTFILSIZE HISTCONTROL SHELL HOME UID自己定义的环境变量不能与这些环境变量相互冲突
查看环境变量: set
env
printenv
declare -x
export 以上这些命令都可以查看环境变量
只读变量:
(1) declare -r name
(2) readonly name
notice:只读变量无法重新赋值,并且不支持撤销:存活时间为当前shell进程的生命周期,随shell进程终止而终止;
变量名:见名知义,命名机制遵循某种法则;不能使用程序的保留字符
bash特性之多命令执行:
~] # COMMON1;COMMON2;COMMON3;..............命令之间没有逻辑关系
逻辑运算:
运算数:真(true, yes, on 1)
假(false,no,off 0)
与: 1 && 1 = 1
1 && 0 = 0
0 && 1 = 0
0 && 0 = 0
或:
1 || 1 = 1
1 || 0 = 1
0 || 1 = 1
0 || 0 = 0
非:
! 1 = 0
! 0 = 1
异或:判断是否不同
俩个数字运算时的数字不相同为 1 相同则为 0
短路法则:
~] # common1 && common2
common1为 ‘假’ ,则common2不会再执行
否则,common1 为‘真’ , 则common2必须执行
~] # common1 || common2
common1 为 ‘真’ 则common2 不会执行
否则,common2执行
~] # id $useraname || useradd $username