shell脚本学习积累笔记(第一篇)

时间:2023-03-09 17:35:41
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命令一样,有命令模式和编辑模式