1.注释
#:注释单行
2.标识符命名规范
硬性规范:
1>标识符只能由数字,下划线,字母构成
2>不能由数字开头
3>不能与shell关键字相同
建议:
1>禁止使用汉语拼音,多查查字典
2>使用驼峰命名法,或者使用下划线连接
3>见名知义
3.变量的定义
1>变量一旦定义出来,就必须给他赋值
2>变量定义时,=号左右不要有空格
3>变量是可以重新赋值
4>如果变量定义成readonly,代表着这个变量不能被再次赋值
注意:shell脚本变量在没有定义的前提下,直接使用,这个变量默认为空
4.变量的使用
1>变量在使用时要在变量前加$
2>在删除变量时,不需要加$
5.echo命令
1>用来输出变量的值
2>会自动换行
3>如果想对\c,这种特殊字符进行转义:
(1)如果是第一种运行方式:./1.sh,必须要对echo开启转义echo -e
value="hello world"
echo -e "${value}\c"
echo "ni hao"
(2)如果是第二种运行方式:sh 1.sh,则不需要对echo开启转义
value="hello world"
echo "${value}\c"
echo "ni hao"
4>\c不换行,\n换行,\t相当于tab键
6.变量使用加{},不是加()
1>避免使用不存在的变量
2>增加程序的可读性
7.unset删除变量
1>删除变量不需要加$
2>删除变量之后,再使用这个变量的时候默认为空
3>如果这个变量是只读变量,是不能删除这个变量的
8.字符串相关处理方法
1>求字符串长度
value="hello world"
length=${#value}
echo ${length}
2>拼接字符串
value="hello world"
value1="ni hao"
value2="${value} ${value1}"
echo ${value2}
注意:拼接时,中间空出的空格,无论空出多少,只会默认空出一格
3>截取字符串
value="hello world"
value1=${value:6:5}
echo ${value1}
注意:字符串从位置0开始,截取字符串时,要说明截取的起始位置和截取长度
9.echo输出加"",'',不加任何东西
1>加'',如果在''号里面输出变量,会把变量当成字符来处理
2>不加任何东西,程序可读性变低,分不清哪些是命令,哪些是变量
3>加了"",会避免上面的问题
注意:建议使用双引号""
10.printf(格式化输出命令)
1>不用像echo命令那么那么复杂
2>按照一定的格式输出
3>输出双引号里面的东西
value="hello"
value1="world"
printf "value=%s\nvalue1=%s\n" "$value" "$value1"
%d:输出十进制整数
%s:输出字符串
%c:输出字符
%f:输出带小数点的数
注意:%d和%c输出类型比较严谨
11.read命令
1>等待输入的值,将值赋给read后面的变量
printf "请输入一个数:"
read num
printf "请再次输入一个数:"
read num1
printf "num=%s\nnum1=%s\n" "$num" "$num1"
12.整数基本运算符
1>算术运算+ 、-、\*、/、%
value1=1
value2=2
value3=`expr $value1 + $value2`
value4=`expr $value1 - $value2`
value5=`expr $value1 \* $value2`
value6=`expr $value1 / $value2`
value7=`expr $value1 % $value2`
注意:$()和``代表取出数据的结果集
2>关系运算符\>、\>=、\<、\<=、\=、\!=
value1=12
value2=123
result1=`expr $value1 \>= $value2`
result2=`expr $value1 \== $value2`
result3=`expr $value1 != $value2`
echo $result1
echo $result2
echo $result3
注意点:\=、\!=,比较特殊,看编译器的支持,
3>如果数字关系运算符与[]连用,使用下面的方式比较
-eq:
-ne:
-gt:
-lt:
-ge:
-le:
eq:equal
n:not
g:greater
l:less
t:than
4>逻辑运算符
&&:而且
||:或者
13.if语句的使用
1>
if [ 条件 ]
then
语句1
fi
2>
if [ 条件 ]
then
语句1
else
语句2
fi
3>
if [ 条件 ]
then
语句1
elif [ 条件 ]
then
语句2
else
语句3
fi
注意点:
1>如果有else,else只能放在最后面
2>if语句是可以嵌套的,最多3层
14.${},$(),$(())的区别
15.let命令
1>计算整数
2>除了可以运算+ - * / %,还可以运算+= -= /= *= %=
3>还可以计算++ --
4>运算时不需要添加$
num1=3
let num2=++num1 #num1=num1+1,num2=num1
let num2=num1++ #num2=num1,num1=num1+1
明天接着学习更新持续进行...