【1】Bash变量
●什么是变量与变量分类
◆在Bash中,变量的默认类型都是字符串
◆变量名在有效的范围内必须是唯一的
●用户自定义变量
◆变量自定义的
◆定义变量
★变量名=变量值;x=5 #“=”两边不能有空格
name="ao"
◆变量调用
★echo $变量名;echo $x #调用变量需要在变量前+$
echo $name
◆变量叠加
★x=123
x="$x"123
echo $x ;123123
◆变量查看
★set 查询系统能够所有生效变量
-u 调用未声明变量时会报错
●环境变量
◆这种变量中主要保存的是和系统操作环境相关的数据。变量可以自定义,但是对系统生效的环境变量名和变量作用是固定的
◆用户自定义变量只在当前的shell中生效,环境变量在当前shell和这个shell的所有子shell中生效
◆对系统生效的环境变量名和变量作用是固定的
◆设置环境变量
★export 变量名=变量值
◆变量查看
★env
◆常用环境变量
★PATH变量:系统查找命令的路径
echo $PATH #查看PATH环境变量
PATH="$PATH":/root/sh #增加PATH变量值
★PS1变量:命令提示符设置
◆当前语系查询
★locale #查询当前语系系统
LANG :定义系统主语系的变量
LC_ALL:定义整体语系的变量
★locale -a #查看Linux支持的所有语系
●位置参数变量
◆这种变量主要是用来向脚本当中传递参数或数据的,变量名不能自定义,变量作用是固定的
◆$n ★n为数字,$0代表命令本身,$!-$9代表第一到第九个参数,10以上的参数需要用大括号包含,如${10}
◆$* ★这个变量代表命令行中所有的参数,$*把所有的参数看成一个整体
◆$@ ★这个变量也代表命令行中所有的参数,不过$@把每个参数区分对待
◆$# ★这个变量代表命令行中所有参数的个数
◆#!/bin/bash
num1=$1 #第一个参数的值
num2=$2
num=$(($num1+$num2)) #将$1+$2的值相加
echo "\$ :$num" #“\”转义符
./canshu1.sh 12 23
◆ #!/bin/bash
for i in "$@"
do
echo $i #循环输出"$@"中的值
done
for i in "$*"
do
echo $i #循环输出"$*"中的值
done
●预定义变量
◆是Bash中已经定义好的变量,变量名不能自定义,变量作用也是固定的
◆$? ★最后一次执行命令的返回状态,正确执行为0,不能正确为 非0
◆$ ★当前进程的PID号
◆$! ★后台运行的最后一个进程的PID号
◆ #!/bin/bash
echo "\$ = $" #当前进程
echo "\$! = $!" #最后一个进程
●接受键盘输入
◆read [选项][变量名]
★选项
-p“提示信息”:在等待read输入时,输出提示信息
-t 秒数:read命令会一直等待用户输入,使用此选项可以指定等待时间
-n 字符数:read命令只接受指定的字符数,就会执行
-s :隐藏输入的数据,适用于机密信息的输入
◆ #!/bin/bash
read -p "input you name: "-t 15 -n 6 -s name
echo $name