1、变量赋值左右两边不能有空格,例如:a=mytest
2、如果要将变量与其他字符连接需要用到{},例如echo $a_1,此处a_1系统识别为:变量名
如果要输出mytest_1,则需要这样输出echo ${a}_1
3、单引号与双引号的区别,单引号中间的内容会被系统视为字符串,例如:echo 'this is $a‘
如果使用双引号,则引号内的$a会被视为一个变量,echo "this is $a"对应输出:this is my test
如果要使用单引号拼接字符串则需要用一对单引号将变量包起来echo ' this is '$a' '
4、反引号,可以将输出结果作为变量输出例如f=`ls`,echo $f,则会输出与单独输入ls的结果
此处f变量为一个字符串,echo my dir is `ls`,首先执行`ls`,然后执行echo将字符串拼接起来
echo `ls` 与 echo $(ls)结果一致的,但是$()不是每个linux系统都支持
5、数组,将一组数据以()则为一个数组,例如上面f=(`ls`),则将获取到的ls输出结果作为数组保存在f变量中
此时echo $f 默认会输出第一个文件或文件夹的名字,如果要取到后续的值则能以echo ${f[1]},
如果要输出所有数组内数据:echo ${f[*]},获取数组变量个数echo ${#f[*]}
6、(())可以进行运算,例如echo $((2+3))>>>>5,a=6;((a=a*8));echo $a 用分号可在同行输入多个命令或变量
7、echo $?可以对上一个指令进行判断输出,如果上个指令成功则会得到0,如果为失败则结果为非0
8、echo 只支持整型数字计算,浮点数计算需用awk ‘BEGIN{print 2/9}’
9、字符串操作a="Hello from test",echo ${a:6}表示从第六个字符开始输出得到结果:from test
echo ${a:6:7}从第六个字符开始取出7个字符输出得到结果:from te
获取字符串长度 echo ${#a}
从头截取字符串echo "${a#He}" 去掉He输出剩余字符串结果:llo from test
echo "${a#*o}"从头开始匹配到第一个o时把包含o之前的字符去掉后输出结果:空格from test,
如果没有双引号将没有第一个空格
echo "${a##*o}"从头开始匹配到最后一个o时把包含o之前的字符去掉后输出结果:m test
从尾匹配截取字符串echo "${a%est}“ 去掉尾部的est输出结果:Hello from t
echo "${a%o*}"从头开始匹配到第一个o时把包含o之前的字符去掉后输出结果:Hello fr
echo "${a%%o*}"从头开始匹配到最后一个o时把包含o之前的字符去掉后输出结果:Hell
字符串替换 echo “{a/from/to}"将from替换成to
10、中断命令,Ctrl+C
11、算术判断[ 2 -eq 2 ];ehco $?判断是否等于,必须放在一对[],首尾必须有一个空格.
-eq 等于 -ne 不等于 -ge 大于等于 -le 小于等于 -gt 大于 -lt 小于
[ 2 -ge 1 -a 3 -ge 4 ];2大于等于1并且3大于等于4,[ -a ] 同等于 [[ && ]] 同等于 and
[ 2 -ge 1 -o 3 -ge 4 ];2大于等于1并且3大于等于4,[ -o ]同等于 [[ || ]] 同等于 or