输入/输出重定向

>数据写入,如果文件存在就覆盖,»数据追加

Here Document

command << delimiter
    document
delimiter 它的作用是将两个 delimiter 之间的内容(document) 作为输入传递给 command。

#!/bin/sh -e

-e的参数的作用是:每条指令之后后,都可以用#?去判断他的返回值,零就是正确执行,非零就是执行有误,加了-e之后,就不用自己写代码去判断返回值,返回非零,脚本就会退出。

cat «-EOF

如果结束分解符EOF前有制表符或者空格,则EOF不会被当做结束分界符,只会继续被当做stdin来输入。

参数

  1. $# 传递到脚本或函数的参数个数
  2. $* 以一个单字符串显示所有向脚本传递的参数
  3. $$ 脚本运行的当前进程ID号
  4. $! 后台运行的最后一个进程的ID号
  5. $@ 与$*相同,但是使用时加引号,并在引号中返回每个参数。
  6. $- 显示Shell使用的当前选项,与set命令功能相同。
  7. $? 显示最后命令的退出状态。0表示没有错误,其他任何值表明有错误。

缺省值(:-),变量的实际值可以保持不变

指定缺省值(:= ),空变量指定一个缺省值

$()是将括号内命令的执行结果赋值给变量

${} 是用来作变量替换

Linux参数太长,一般可取续行符 “"进行参数换行/续行。反斜杠\ 后面紧跟回车,表示下一行是当前行的续行.

tr,查找替换

sed

#-e:使用脚本,s:替换,s#:使用#作为分隔符
sed -e 's#'"${BASE}"'\([^.]*\).yml#\1#g'

which命令用于查找文件

which bash