用户自定义变量 | 环境变量 | 位置参数变量 | 预定义变量
变量是内存地址的名称
4、本地变量(用户自定义变量)
变量定义
[root@localhost ~]# name=hello
变量叠加
[root@localhost ~]# aa=123
[root@localhost ~]# aa="$aa"456
[root@localhost ~]# aa=${aa}456
变量查看
[root@localhost ~]# set ###查看到系统中所有的变量
变量删除
[root@localhost ~]# unset 变量名称
#######################################################################
环境变量
export 变量名=变量值
#申明变量
env
#查询变量
unset 变量名
#删除变量
PS1:定义系统提示符的变量
\d:下视日期,格式为“星期 月 日”
\h:显示简写主机名。如默认主机名“localhost”
#############################################################
位置参数变量
位置参数变量 | 作用 |
$n | n为数字,$0代表命令本身,$1-$9代表第1到第8个参数,十以上的参数需要用大括号包含,如${10} |
$* | 这个变量代表命令行中所有的参数,$*会把所有的参数看成一个整体 |
$@ | 这个变量也代表命令行所有的参数,不过$@把每个参数区分对待 |
$# | 这个变量代表命令行中所有参数的个数 |
[root@localhost ~]# vim weizhicanshu.sh
#!/bin/bash
echo $0
echo $1
echo $2
echo $3
[root@localhost ~]# chmod 755 weizhicanshu.sh
[root@localhost ~]# ./weizhicanshu.sh 111 222 333
./weizhicanshu.sh
111
222
333
例子1:
[root@localhost ~]# vim sum.sh
#!/bin/bash
num1=$1
num2=$2
sum=$(($num1 + $num2))
echo "sum is : $sum"
[root@localhost ~]# chmod 755 sum.sh
[root@localhost ~]# ./sum.sh 111 222
##############################################################
预定义变量
预定义变量 | 作用 |
$? | 最后一次执行的命令的返回状态。如果这个变量值为0,证明上一个命令正确执行。如果这个变量值为非0(具体时那个数,由命令自己来确定),则证明上一个命令执行不正确 |
$$ | 当前进程的进程号PID |
$! | 后台运行的最后一个进程的进程号(PID) |
[root@localhost ~]# vim test1.sh
#!/bin/bash
echo "$$" #查看当前进程的PID
find /root -name hello.sh &
echo "$!" #查看后台运行的最后一个进程的PID
################################################################################
接收键盘输入
[root@localhost ~]# read [选项] [变量名]
选项:
-p "提示信息" 在等待read输入时,输出提示信息
-t 秒数 read命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数 read命令只接受指定的字符数,就会执行
-s
例子1:
[root@localhost ~]# vim test2.sh
#!/bin/bash
read -t 30 -p "Please input your name: " name
#提示"请输入姓名" 并等待30秒,把用户输入保存入变量那么中
#变量name前面必须由个空格
echo "Name is $name"
read -s -t 30 -p "Please enter your age:" age
#年龄是隐私,所以我们用"-s" 选项隐藏输入
echo "Age is $age"
echo -e "\n"
read -n 1 -t 30 -p "Please select your gender[M/F]: " gender
#使用"-n 1"选项只接收一个输入字符就会执行(都不用输入回车)
echo -e "\n"
echo "Sex is $gender"