shell编程-变量
1.Bash用户自定义变量
【局部变量】
【按数据存储分类】:整型、浮点型、字符串型、日期型
【变量定义】:x=5,y=6,z=$x+$y=5+6,m=$(($x+$y))=11
【Bash变量默认都为字符串型,等号左右不可以有空格】
【变量叠加】:x="$x"123,x=${x}345
2.Bash环境变量
【全局变量】exprot 变量名=变量值
【变量查询】:env 、 set -u:当调用不存在的变量时,实现明确的报错
【删除变量】:unset 变量名
【用户可以自定义环境变量,但是变量名是不变的,变量的作用是固定的】
PATH变量:系统查找命令的路径
变量叠加:PATH="$PATH":/root/sh
3.Bash语系变量
【查看语系变量】:locale [-a | more]
LANG:定义系统主语系
LC_ALL:定义整体语系
cat /etc/sysconfig/i18n
4.位置参数变量
$n:n为数字,$0代表命令本身,$1-$9代表第一到第九个参数,十以上的参数需要大括号${10}
$*:这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
$@:这个变量也代表命令行所有参数,不过$@把每个参数区分对待
$#:这个变量代表命令行整所有参数的个数。
for i in "$*"
#这个for循环只会循环一次
do
echo "The parameters is:$i"
done
for y in "$@"
这个for中,$@有几个参数,就会循环几次。
4.预定义变量
$?:判断最后一次命令是否正确执行
$$:当前进程的进程号PID
$!:后台运行的最后一个进程的进程号PID
接收键盘输入:
read 【选项】【变量名】
-p:提示信息
-t:等待的秒数
-n:字符数
-s:隐藏输入的数据,适用于机密信息的输入
read -p "please input your name:" -t 30 name
echo $name