shell脚本的第一行#!
#! /bin/awk -f
内核会扫描文件开头的#!后面内容,跳过所有空白符号,寻求可以用来执行程序的解释器的full path和option(option后面的空格会识别)
; shell用分号隔开多条语句
& 后台执行该命令,不会pend下一条指令的运行
PATH变量
path一般在可执行文件bin(binary)下面
针对你自己的脚本,最好创建bin目录来存放,然后把bin的路径加到$path中
冒号的位置决定了如何查找当前目录,但不建议查找当前目录,会有一些安全问题(在后面说)
变量
变量赋值,=左右没有空格
赋值内容有空格,用“”
取变量,$
echo输出语法规则
也可以用printf
重定向与管道
< 改变标准输入
">"改变标准输出
“>>” 附加到文件后面
|串联管道pipeline
tr标准输入文本处理
大小写转换,删除重复,删除指定字符
/dev/null
是一个特殊的设备文件,这个文件接收到任何数据都会被丢弃,俗称“黑洞”
0 是标准输入,一般是从键盘获得输入
1 是标准输出,一般是输出到屏幕了
2 是标准错误,有时候屏幕上可以看到,但是重定向的文件中看不到的就是它了
2>/dev/null意思就是把错误输出到“黑洞” ,也就是说如果你的命令出错的话,错误报告直接就删除了。不会显示在屏幕上
/dev/tty
对应的当前的这个控制终端的别名。该文件对于读取人工输入时(例如密码)特别有用。
set -x语句执行跟踪
+code提示当前运行的code