1、变量的定义
var=value
直接使用key=value的形式,等号中间不能有空格等空白字符
2、变量的输出
echo ${varName}
通过echo输出内容 ${xxx}表示引用某个叫xxx的变量
Note:如果echo 后是'',那么单引号内的内容原样输出 ,如果是""那么双引号内的内容可能会经过"计算"后再
输出,如果要输出的内容有特殊字符要么通过转义字符使用单引号
3、取消变量
unset varName
4、$( someCommand ) 或者 ` someCommand ` 表示先执行()和``中间的命令
5、使用env/set/export查看环境变量
6、$RANDOM生成随机数
7、$表示当前进程的PID,?表示上一条命令的返回值(0代表成功,否则代表失败)
所以可以使用$?获取上一条命令的执行成功与否
8、默认情况下,子shell是不能访问父shell的变量的,如果想让子shell访问父shell的环境变量,那么久需要
在父shell中export该变量
9、在shell中定义数组变量使用,shell中的下标从1开始
v[1]="A"
v[2]="B"
v[3]="C"
10、如果需要限制用户的使用资源可以使用ulimit命令(用到的时候在查)
11、变量内容的删除/替换/
v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
echo ${v}
echo ${v#/*bin:} => /root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
echo ${v##/*bin:} => /home/prod/sbin
解释:
#表示从其前面的变量值得最左边开始往后删除,删除最短的距离
##表示从其前面的变量值得最左边开始往后删除,删除最长的距离
v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
echo ${v}
echo ${v%:/*bin:} => /root/lyzx/bin:/root/lyzx/sbin
echo ${v%%:/*sbin:} => /root/lyzx/bin
解释:
%表示从其最后面往前删除,删除最短的距离
%%表示从其后面往前删除,删除最长的距离
v=/root/lyzx/bin:/root/lyzx/sbin:/home/prod/bin:/home/prod/sbin
${v}
${v/sbin/SBIN} => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/sbin
${v/sbin//SBIN} => /root/lyzx/bin:/root/lyzx/SBIN:/home/prod/bin:/home/prod/SBIN
解释:
/ 表示把其后的替换为最后的文本,只替换第一个
//表示把其后的替换为最后的文本,替换所有
echo ${v-v1} //当v变量没有定义时,返回v1
echo ${v:-v1} //当v变量没有定义、或者为空字符串时,返回v1