什么是shell脚本
Shell 脚本(shell script),是一种为 shell 编写的脚本程序。shell script是一种解释型语言,必须由解释器来执行这些脚本,执行时,解释器将脚本一行一行地转换为代码。
这个解释器就是Shell,它是一个用 C 语言编写的程序。常见的Shell有Bourne Shell(/usr/bin/sh或/bin/sh)和Bourne Again Shell(/bin/bash),sh由Steve Bourne开发,是Unix 标准默认的shell,bash由Brian Fox和Chet Ramey共同开发完成,是Linux标准默认的shell。
创建shell脚本
在linux中可以使用vim来编写shell script,通常使用.sh作为扩展名,sh代表shell。下面是一个简单的shell脚本:
#!/bin/bash
echo "Hello World !"
第一行的“#!”是一个约定的标记,它告诉系统这个脚本需要哪一种解释器来执行。
执行shell脚本
编写完shell脚本,在执行脚本前我们需要给脚本添加执行权限,命令如下:
chmod +x test.sh
然后执行shell脚本
./test.sh
注:./ 表示执行当前目录中test.sh脚本,如果不加./,则系统会去PATH中的目录里面查找test.sh脚本,因为当前的目录没有配置在PATH中,所以会提示找不到命令,如下所示:
[root@pingtai-test test]# test.sh
-bash: test.sh: command not found
常用shell脚本
1,通过shell脚本调用jar包
#!/bin/bash
source /etc/profile
nohup java -jar -Xms4000m -Xmx4000m -Xmn2000m /usr/local/test/Test1.jar >> /var/log/test/log/test_$(date -d "today" +"%Y-%m-%d").log 2>&1 &
wait
nohup java -jar -Xms4000m -Xmx4000m -Xmn2000m /usr/local/test/Test2.jar >> /var/log/test/log/test_$(date -d "today" +"%Y-%m-%d").log 2>&1 &
这个脚本用来执行两个Java程序Test1和Test2,先执行Test1,然后再执行Test2,并将日志输出到/var/log/test/log目录下面。
2,定时清理垃圾文件
#!/bin/bash
#删除文件夹
rm -rf /home/test/blacklistEnterpriseList
rm -rf /home/test/creditReport
rm -rf /home/test/financeList
rm -rf /home/test/monitorEnterpriseEventUpdateList
rm -rf /home/test/monitorEnterpriseList
#创建文件夹
mkdir /home/test/blacklistEnterpriseList
mkdir /home/test/creditReport
mkdir /home/test/financeList
mkdir /home/test/monitorEnterpriseEventUpdateList
mkdir /home/test/monitorEnterpriseList
这个脚本用来清理垃圾数据,先删除文件夹及文件夹内的文件,然后新建文件夹,配成定时任务后可以定时清理历史数据,避免磁盘空间被占满。