shell脚本学习积累笔记(第一篇)
(1)首先,今天在执行shell脚本./test.sh时抛出“/bin/sh^M: bad interpreter: No such file or directory”的异常,百度后,才知道这是由于不同系统编码格式不同引起的。在windows系统中编辑的.sh文件可能有不可见字符,所以在执行时会抛出上面的异常信息。
解决方法:1,确定文件有执行权限
2,修改文件格式:
vi test.sh 使用vi命令准备修改文件格式
:set ff 或:set fileformat 命令模式下查看文件格式,可以看到如下信息:fileformat=dos或fileformat=unix
:set ff=unix 或 :set fileformat=unix 修改文件格式
:wq 存盘退出
3,这时候再去执行原文件,就不会抛出“/bin/sh^M: bad interpreter: No such file or directory”这个异常了。
(2)java -cp/java -classpath 指定类运行所依赖其他类的路径,通常是类库、jar包之类的。
注意:windows上是;分隔,linux上是以:分隔的,其中.代表当前路径。
classp1=/project/projectName/bin
ssp=.:$classp1/lib/*:$classp1
java -cp $ssp
java -cp $ssp -Ddefault.client.encoding="GBK" -Dfile.encoding="GBK" -Duser.language="Zh" -Duser.region="CN" com/test/TestHello
(3) linux命令:date
date -d 通过将日期作为引号括起来作为参数提供,可以快速查明一个特定的日期。
date -d yesterday '+%Y%m%d' 显示当天时间的前一天:20151116
date -d '30 days ago' '+%Y%m%d' 当前时间的前30天:20151018
date -d '50 days' '+%Y%m%d' 50天后:20160106
dates=`date -d yesterday '+%Y%m%d'`
(4)定时执行脚本:crontab -l 查看当前用户下的定时任务列表
crontab -e 编辑定时任务,和vi命令一样,有命令模式和编辑模式