1、#!/bin/sh开头
2、变量:
(1)定义:变量名=字符串。注意:=左右无空格;name=“hello world”,为其赋值带空格的字符串;
(2)引用:用$nametest、${name}test。
3、通配符:
(1)*符号:用于匹配字符串零次或多次出现;匹配的含.和\符号必须显示指出。如*test不能匹配.EXtest,而要用.EX*;*test不能匹配/home/test,要用/*/test才可以。
(2)?符号:仅匹配对应位置的一个字符
(3)[]符号:匹配该字符组所限定范围内的任何一个字符
(4)!符号:匹配不在该字符组所限定范围内的任何一个字符
4、shell输入:
read 变量1 变量2
#!/bin/sh
echo "input your name and age:"
read name age
echo "name is :"$name
echo "age is :"$age
5、shell输出:
echo
6、shell数组:支持一维数组,但不限定数组的具体大小。
(1)取值的一般方式:${数组名[下标值]}
(2)赋值方式:数组名[下标值]=值
(3)可以一个个赋值,也可整体赋值,但值与值用空格隔开。数组名=(value1 value2 value3...)。
eg:
#!/bin/sh
name=(i am very happy)
echo "name[0] is:"${name[0]}
echo "name[1] is:"${name[1]}
echo "name[2] is:"${name[2]}
echo "name[3] is:"${name[3]}
(4)可以通过下标输出值,也可以用*和@符号代替下标,如${name[*]}取出数组中所有元素的值。
#!/bin/sh
name=(i am very happy)
echo "name is " ${name[*]}
echo "name1 is "${name[@]}
(5)上面是如何增加、读取,下面介绍如何修改、删除。
A、修改理解为对数组指定元素的重新赋值;
B、删除需要借助一个外部命令:unset。unset name[0]来清空下标为0的元素;也可以使用unset name[@]命令来取消数组中所有的元素。
#!/bin/sh
name=(i am very happy)
name[0]=myself
echo ${name[@]}
unset name[0]
echo ${name[@]}
unset name[@]
echo ${name[*]}
name[0]=hello
name[1]=world
echo ${name[*]}
运行结果:
myself am very happy
am very happy
hello world
6、环境变量:linux中有一块公共空间,专门用于存放环境变量,用户可以通过printenv进行查看。
(1)基本的环境变量:
PWD、HOME、LOG NAME、SHELL、PATH
(2)环境变量的删除:
用unset命令,eg:unset PATH 则PATH即为空。
#!/bin/sh
echo "PWD:"$PWD
echo "path:"$PATH
echo "logname:"$LOGNAME
echo "sehll:"$SHELL
echo "home:"$HOME
运行结果:
PWD:/home/test/shell
path:/usr/lib64/qt-3.3/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/root/bin
logname:root
sehll:/bin/bash
home:/root