输入—read
形式:
1.read var 读取标准输入到var
2.read 不指定变量,读取标准输入到一个内置变量:REPLY
3.read -a arr 读取标准输入到数组
# -p 输出提示信息,-t 限定时间(s),超时返回
read -p "please input 3 digits:" -t 10 -a arr
输出—echo
形式:
1.echo "Hello world" 输出一行文本
2.echo $var 或 echo ${var} 输出变量值
# -n 输出helloworld后不换行
echo -n "helloworld"
# 若没有-e,输出\t, -e输出一个Tab
echo -e "\t"
# 设置前景色,范围\33[30m -- \33[37m
# 设置背景色,范围\33[40m -- \33[47m
# 设置光标位置\33[y;xH
# 0黑色, 1深红, 2绿色, 3黄色, 4蓝色, 5紫色, 6青色, 7白色
echo -e "\33[31m" # 前景色
echo -c "\33[5;10H\33[31;46m" #同时设置光标前景色和背景色
# 取消设置
echo -e "\33[0m"
引号的区别
1.单引号' ' 忽略所有特殊字符
2.双引号" " 忽略部分特殊字符,不包括$ `
# 不加'',将输出当前目录下所有文件
echo '*'
3.反引号`` 命令替换(将一个命令的标准输出插入到命令的任何位置)
$()与``等价
算术扩展
1.$[]
# 输出n+1 n=5 echo $[$n+1] # or $(($n+1))
2.((n+=1)) # n自增1,不能作为表达式的一部分,也不能赋给另一个变量
3.
expr 4 + 5 # 计算4+5,+号俩边要有空格 r=`expr 4 + 5` # 不能直接赋值给r,使用命令替换 r=`expr 4 \* 5` # '*'要转义
4.let
n=5 let n=n+1 # 不需要$