1. set指令
(1)set -e
每个脚本都应该在文件开头加上set -e,这句语句告诉bash如果任何语句的执行结果不是true则应该退出。
这样的好处是防止错误像滚雪球般变大导致一个致命的错误,而这些错误本应该在之前就被处理掉。如果要增加可读性,可以使用set -o errexit,它的作用与set -e相同。
(2)set -x
用于脚本调试,在liunx脚本中可用set -x就可有详细的日志输出.免的老是要echo了
2. if
(1) if [-d filename]
-d filename 如果 filename为目录,则为真
(2) if [ $? -eq 0 ]
$ ? 是 上 一 个 程 序 执 行 是 否 成 功 的 标 志 , 如 果 执 行 成 功 则 ? 是上一个程序执行是否成功的标志,如果执行成功则 ?是上一个程序执行是否成功的标志,如果执行成功则? 为0,否则 不为0
3. 比较运算符
4. shell的"="前后不能有空格
5. 逐行读取文件
逐行读取a.txt,将每一行的内容赋给rows,然后在b.txt中找到rows所在行并将这一行打印出来,放到c.txt中
cat a.txt | while read rows; do my_case=`grep $rows b.txt`; echo $my_case; done > c.txt
这里有个问题,就是直接在命令行使用上述命令是可以实现的,但是如果写在.sh文件里面再运行的话就实现不了了。
6. 取文件的指定几列
awk -F '\t' '{print $11"\t"$12"\t"$13"\t"$10}' file1.txt > file2.txt
取出file1.txt中的第11,12,13和14列,放入file2.txt中,分隔符为’\t’