1.echo 输出变量
等号连接变量与变量内容
[root@test45 ~]# echo $myname
[root@test45 ~]# myname=bich
[root@test45 ~]# echo $myname
bich
2.基本规范
等号两边不能直接接空格符,可用双引号或单引号连接
双引号中的特殊字符保持原有意义,单引号中的特殊字符为纯文本
`指令` 或 $指令用来
变量名称只能是英文或数字且开头字母不能是数字
跳脱字符 \ 可以将特殊字符转换成一般字符
扩充变量内容:用"$变量名称"或$变量累加内容
PATH="$PATH":/home/bin or PATH=${PATH}:/home/bin
取消变量:unset 变量名
3.父程序与子程序
子程序
root@test45 ~]# myname="$myname"yes
[root@test45 ~]# echo $myname
mdoryes
[root@test45 ~]# bash ---bash 进入子程序,父程序的自定义变量子程序看不见
[root@test45 ~]# echo $myname
[root@test45 ~]# exit
exit
[root@test45 ~]# export myname ---设定环境变量
[root@test45 ~]# bash ----子程序可以看见
[root@test45 ~]# echo $myname
mdoryes
echo $(uname -r)
2.6.32-431.el6.x86_64
4.相关命令
1)locate crontab----locate列出所有相关文件路径
-----------------------------------------------------------
2) 环境变量:
env列出当前所有shell环境下的环境变量和内容(export也有类似功能)
set列出当前所有变量 包括环境变量(全局变量)和自定义变量(局部变量)
RANDOM 随机环境变量
[root@test45 ~]# echo $RANDOM
29030
[root@test45 ~]# declare -i number=$RANDOM*10/32768 ---取0-9随机数
[root@test45 ~]# echo $number
3) PS1
4)$: $本身就是一个变量 数字是shell的PID
echo $$
4532
?: 上一个执行的指令所回传的值 上一个指令成功执行,会回传0值,错误回传非0值
5)export:自定义变量转化为环境变量
6)locale: 显示语序结果的语系变量(显示支持的所有语序)
[root@test45 ~]# locale
LANG=en_US.UTF-8
LC_CTYPE="en_US.UTF-8"
LC_NUMERIC="en_US.UTF-8"
LC_TIME="en_US.UTF-8"
LC_COLLATE="en_US.UTF-8"
LC_MONETARY="en_US.UTF-8"
LC_MESSAGES="en_US.UTF-8"
LC_PAPER="en_US.UTF-8"
LC_NAME="en_US.UTF-8"
LC_ADDRESS="en_US.UTF-8"
LC_TELEPHONE="en_US.UTF-8"
LC_MEASUREMENT="en_US.UTF-8"
LC_IDENTIFICATION="en_US.UTF-8"
LC_ALL=
7)read:键盘直接输入变量值
read 变量名
输入变量值
参数:-p : 接提示字符
-t : 后面可以接等待秒数
8)declare:宣告变量的类型
declare [-aixr] variable
选项与参数
-a: 将variable的变量定义为数组(array)
-i: 将variable的变量定义为整数数字(int)
-x:=export 将variable变量定义为环境变量
-r:将变量定义成为readonly类型---变量不可被更改内容,也不能unset
如:
[root@test45 ~]# sum=100+900
[root@test45 ~]# echo $sum
100+900
[root@test45 ~]# declare -i $sum ---掌握正确格式
-bash: declare: `100+900': not a valid identifier
[root@test45 ~]# declare -i sum=100+900
[root@test45 ~]# echo $sum
1000
当不指定变量类型时,默认为字符串类型--所以上面会出错
需要非字符串类型时就需要用declare来进行变量宣告
当一个用户已有一个变量类型,想去掉时把参数前- 改为+即可
declare -p 变量
可以列出当前变量的所有类型
declare -p sum
declare -i sum="1000"
8) 数组:
9)var[]=值
读取数组${变量}
10)ulimit 文件系统及程序的限制关系(限制用户的某些资源,包括CPU使用事件,内存总量及可以开启的文件数量)
ulimit [-HSacdfltu] [配额]
11) 删除字符串
# path=${PATH}
# echo $path
/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
# echo ${path#/*local/bin:}
/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
${path#/*local/bin:}
:#表示从变量path的内容最前面开始向右删除,且删除最短的一个
/*local/bin::为删除的内容,/是内容开头的,*是通配符
## 代表删除掉最长的那个数据
12)取代字符串:/ /之间的是旧字符 最后一个/后面的是新字符
# echo $dmtsai
/var/spool/mail/dmtsau
# echo ${dmtsai/dmtsau/dmtsai}
/var/spool/mail/dmtsai
总结:
13)变量的测试与内容替换