shell脚本语言

参考链接http://c.biancheng.net/cpp/shell/|shell脚本教程

shell脚本语言学习

hello world

新建.sh文件,并给文件授权x权限。打开文件并在文件中输入以下代码\

1
2
#!/bin/bash
echo "Hello World !"

第一行表示用/bin/bash来编译执行此文件,第二行表示在窗口输出“hello world!”

基本语法

shell语言的语法和c语言类似,所以学起来还是比较容易理解。

变量

1
2
3
#!/bin/bash
i=1
echo $i

http://c.biancheng.net/cpp/view/2736.html|shell运算符

常用数据类型

字符串

最好用双引号,里面可以直接引用变量。

1
2
your_name="qinjx"
greeting="hello, "$your_name" !"

数组

定义数组

1
array_name=(value0 value1 value2 value3)

读取数组

1
NAME[0]="Zara"

换取数组长度

1
length=${#array_name[*]}

常用语句

条件语句if

注意:所有的[]和里面的表达式都需要空格[ $a == $b ]

循环语句

for循环

1
2
3
4
for loop in 1 2 3 4 5
do
echo "The value is: $loop"
done

while循环

1
2
3
4
5
6
COUNTER=0
while [ $COUNTER -lt 5 ]
do
COUNTER='expr $COUNTER+1'
echo $COUNTER
done

until循环

1
2
3
4
5
6
a=0
until [ ! $a -lt 10 ]
do
echo $a
a=`expr $a + 1`
done

跳出循环break,continue。这两个关键字后面可以跟数字,表示跳出基层循环。

函数

函数定义

1
2
3
4
Hello () {
echo "hello"
return 1
}

函数调用,直接写函数名字就行。函数返回值在调用该函数后通过 $? 来获得

1
2
Hello
ret=$?

函数参数

1
2
3
4
5
6
7
8
funWithParam(){
echo "第一个参数 $1 !"
echo "第二个参数 $2 !"
echo "第十个参数 $10 !"
echo "参数个数 $# !"
echo "传递给函数的所有参数 $* !" # 传递给函数的所有参数
}
funWithParam 1 2 3 4 5 6 7 8 9 10

文件操作

向文件中写 command > file ,command为命令,file为文件。

1
echo "1" > users

例子:定时删除多少天之前的文件
1、新建文件夹hello.sh并给予运行权限,并在其中输入以下代码

1
2
3
#!/bin/bash
dir=/app/webContent/ems-admin/logs/
find ${dir} -mtime +1 -type f|xargs rm -f

${dir}为路径
-mtime +1 是设置时间为1天前
-type f表示删除的是文件
“|”为管道,连接一个命令的标准输出和另一个命令的标准输入。
xargs可以通过管道传递参数,作用是将参数列表转换成小块分段传递给其他命令。
2、建立定时任务
使用命令crontab -e编辑定时任务。加上以下代码

1
*/1 * * * * /app/test/shellcode/hello.sh

每分钟运行一次hello.sh文件。

转载请注明出处 http://www.justli.xyz/2017/03/15/shell脚本语言/