初写Linux脚本坑记录

时间:2023-03-08 16:55:11

1、为变量赋值时=前后一定没有空格。

2、赋值时变量为xx,读取才是$xx。如赋值是$xx,则报语法错误。参考 http://www.jb51.net/article/52375.htm

3、脚本每句话有没有分号;无所谓。

4、分支语句if [ xx==yy ] ; then elif [ yy!=zz ]; then else fi。空格一定要空对,if和then同一行时用;且then前有空格。fi和if,case和ease。参考http://www.cnblogs.com/kangyoung/p/3556173.html

5、变量连接组合成字符串,直接$xx$yy“zz”

6、mkdir -p 是递归建立目录。

7、查找文件里含有xyz的行用grep。按文件名查找用find。两者用xargs打组合拳——可以查找xx命名规则下,包含xx字符的所有行。结果通过管道组成新文件。

8、scp命令可复制远程文件到本地,但需要输入密码。自动输入密码用except,但我本地没好使,下不了except。

9、vim下编辑可以去掉win下多余的换行符。有时会导致unexcept end 错误。用:set fileformat=unix 再:wq。(CRLF变LF)

10、脚本里获取时间用date命令 DATE=$(date +%Y%m%d)。或者Date=`date +%Y-%m-%d`。中间-是字符串可加可不加。参考http://www.cnblogs.com/mfryf/archive/2012/03/23/2413362.html

11、运行脚本时,获取“选项”的输入参数。简单的直接用$1,$2上。$1--第一个参数,$0--命令本身,$#--几个参数,$@--参数数组。更复杂的参考http://www.cnblogs.com/FrankTan/archive/2010/03/01/1634516.html

12、单行注释#(不知为何我的不行?#! /bin/sh)。

  多行注释  :<<BLOCK

         balalalala

         BLOCK

  BLOCK只是一个标签。换啥都可以。