1、 执行shell脚本
sh test.sh 参数1 参数2……
2、 获取输入参数
$1、$2、$3、….. 第0个参数是文件名
#!/bin/bash
echo 第0个参数是:$0
echo 第1个参数是:$1
echo 第2个参数是:$2
echo 第3个参数是:$3
3、 shell脚本函数
#!/bin/bash
function add
{
sum=`expr $1 + $2`
echo $sum
}
add 1 2
$ sh test.sh
3
必须先定义函数,才能调用,而且函数无参数列表,但是可以传参。
4、 expr用法
主要用于四则运算和字符串的操作。
(1)四则运算
例如:对于加减乘除不能写为:
10 + 20
但是可以写为:
$ expr 10 + 20
30
具体用法为:
expr argument operator argument
(注意运算符左右都有空格 ,如果没有空格表示是字符串连接)
注意乘法:expr 30 * 30 使用乘号时,必须用反斜线屏蔽其特定含义。因为shell可能会误解显示星号的意义。
(2)获取字符串长度
$ expr length “aaaa”
4
(3)模式匹配
格式:expr STRING : REGEXP
$ expr 'abc.c' : '\(.*\).c'
abc
(4)获取某个字符的索引,如果不存在返回0
$ expr index “abcd” c
3
$ expr index “abcd” e
0
5、 在脚本中调用其他脚本
第一个脚本first
#!/bin/bash
echo 'your are in first file'
val=`expr $1 + $2`
echo $val
第二个脚本second
#!/bin/bash
echo 'you are in second file'
sh first.sh '10' '20'
第二个脚本调用第一个脚本
6、判断
-eq 等于
-ne 不等于
-gt 大于
-lt 小于
-le 小于等于
-ge 大于等于
-z 空串
= 两个字符相等
!= 两个字符不等
-n 非空串
7、if
(1)基本语法
if [ command ]; then
符合该条件执行的语句
fi
(2)扩展语法
if [ command ];then
符合该条件执行的语句
elif [ command ];then
符合该条件执行的语句
else
符合该条件执行的语句
fi
8、for
(1) for
#!/bin/bash
for ((i=1; i<=10; i++))
do
echo $i
done
(2) for-in
#!/bin/bash
for i in 1 2 3
do
echo $i
done
9、while
#!/bin/bash
i=1
sum=0
while [ $i -le 100 ]
do
let sum=sum+$i
let i++
done
echo $sum
10、vim
(1)打开vim编辑器:vim filename
(2)输入“i”进行编辑
(3)esc退出编辑
(4):wq 退出并保存
注意:在Windows下编写好sh文件后,在Linux下运行会报错:bash: $’\r’: command not found;
这是因为Windows系统的文件换行使用的是\r\n,而Unix系统是\n;
解决:使用vim打开文件,然后使用命令:set ff=unix,保存文件