一、基本说明:
1)shell脚本的开头:#!/bin/sh。解释:此语句放在shell脚本的开头;其意为告诉编译器,shell需要bin文件夹下的sh解释器进行解析。
2)注意空格。在写if语句时,需要注意if[ xx ],[ ]内部两侧是要有空格的。
3)#为注释符。
4)转移字符需要使用\。比如输出$符号,需要写成\$。
5)break关键字不是用来跳出switch case语句,而是用来跳出循环。也就是说,在shell的switch case语句中,没有break关键字。
6)shift关键字用在shell中,相当于左移的功能。
7)case......esac、do.......done。
二、基本命令解释及举例说明
1)-f:判断文件是否存在。
e.g.:判断a.txt文件是否存在,如果存在输出exists;如果不存在输出no exists,并且创建b.txt文件。
if[ -f a.txt ]; then
echo "exists"
else
echo "no exists"
touch b.txt
fi
2)-z:判断字符串是否为空。
3)||:[ 条件为假 ] || 执行语句。
4)&&:[ 条件为真 ] && 执行语句。
e.g.:判断字符串是否为空,如果字符串不为空,输出string is not empty。
string="ddd"
[ -z $string ] || echo "string is not empty"
e.g.:判断字符串是否为空,如果字符串为空,输出string is empty。
string=""
[ -z $string ] && echo "string is not empty"
5)-eq:判断两个数是否相等。
6)-gt:大于
7)-lt:小于
8)-ge:大约等于
9)-le:小于等于
三、其他命令:
1、调用linux命令:
1)使用 ``符号,可以调用linux命令,并返还此命令执行后的结果。
e.g.:执行Linux的pwd命令,并打印出来pwd命令执行后的结果。
PWD= `pwd`
echo PWDVALUE=$PWD
2、循环语句:
1)for循环:do......done中的内容为循环体;do......done相当于大括号,即{......}。
e.g.:打印出123456
for i in 1 2 3 4 5 6
do
echo $i
done
2)while循环:
e.g.:如果v1小于v2,v1+1并打印出v1的值。
v1=1
v2=10
while [ $v1 -lt $v2 ]
do
echo $v1
v1=$(($v1+1))
done
3、echo命令创建文件并追加内容:
1)>:创建文件并在文件中添加内容。
2)>>:在已经存在的文档中末尾继续追加内容。
e.g.:在已经存在的文件echomain.c文件中添加头文件和void main函数。
echo "#include <stdio.h>
void main()
{
return 0;
}" >> echomain.c
4、shift的使用:$#---传参的参数总个数;$0----使用的解释器;$1---第一个传参;$2---第二个传参......依次类推
e.g.:
echo $# $0 $1 $2 $3 $4
shift;
echo $# $0 $1 $2 $3 $4
shift;
echo $# $0 $1 $2 $3 $4
shift;
echo $# $0 $1 $2 $3 $4
shift;
echo $# $0 $1 $2 $3 $4
在命令行输入:source xxxxx.sh aa bb cc dd
执行结果: