使用变量
首先显示消息,最基本的echo命令,echo后面的字符串会直接显示控制台显示器上。
echo "this is shell"
看个人习惯吧,单引号,双引号都可以,不加也可以。如果字符串中含有单引号或者双引号,就用另一种将字符串划定起来,这边的变量可以是环境变量也可以是用户变量。
环境变量
echo HOME:$HOME ----HOME:/home/work
echo PATH:${PATH} HOME:/usr/local/bin:/usr/bin:/usr/local/sbin:/usr/sbin:/opt/apps/openresty/nginx/sbin:/opt/apps/php/bin:/home/work/.local/bin:/home/work/bin
echo PATH:\$PATH -----HOME:$PATH \允许shell将$解读为实际的美元符号
用户变量
name="shell"
echo {name} 或者echo name ----shell
name2=$name
echo name2 ----shell
字符串相关
name="this is mike"
echo ${name} --- this is mike
echo ${#name} ---12 获取字符串长度
字符串截取
echo ${name:0:4} ---从左往右第一个截取至第四个 this
echo ${name:4} --- 从左往右第四个开始截取至最后 is mike
echo ${name:0-4:7} ---从右往左算起0-4个,截取3个 mik
echo ${name:0-4} ---从右往左截取4个 is mike
echo ${name#*s} --- 从第一个s截取 is mike
echo ${name##*s} --- 贪婪匹配 mike
echo ${name%i*} ---从右往左匹配 this is m
echo ${name%%i*} ---贪婪匹配 th
字符串替换
echo ${name/is/iss} ---替换第一个is thiss is mike
echo ${name//is/iss} ---贪婪匹配,替换所有is thiss iss mike
echo ${name/#*s/iss} --- iss mike
echo ${name/%i*/iss} --- thiss
expr的字符串操作
expr index "$name" i --- 3 查找i的索引(从1开始计数)
expr length "$name" ---name的长度
expr match "$name" this ---4
expr substr "$name" 3 4 --- s is 返回一个以 StartPosition 的字符开始的在 String1 中的字符串,并且是 Length 长度的字符串(substr String1 StartPosition Length)
数组相关
数组也是用户变量的一种,能够存储多个值的变量,可以单独引用,也可以作为整个数组来引用
数组定义
name=(this is mike)
-------------------
name[0]=this
name[1]=is
name[2]=mike
-------------------
str="this is mike"
name=($str)
操作数组
name=(hello everyone my name is mike)
echo ${name} --- hello
echo ${name[2]} --- my
echo ${name[@]} ---hello everyone my name is mike (通配符也可以换乘 *)
-------------------