1、#!/bin/sh 定义脚本解释器,将shell语句翻译成机器语言
2、${var} 变量定义:通过$符号定义,变量又可以分为环境变量,脚本变量等;统计变量的信息有如下指令:
(1) $$ shell本身pid进程号; (2)$? shell上一条命令执行情况,真返回0;假返回1;也可以返回函数定义的量;(3)$@、$* 返回全部变量 ;(4)$1、$2....返回的是第一个变量,第二个变量,依次推;如果变量不存在,则默认返回空;(5)$0 返回文件名; (6)$- 显示使用set命令设置的flag情况;
3、if 判断语句 if [-f ${var}];then 相关处理 fi结束 其中-f表示 判断变量${var} 是否是一个文件;还有相关的参数如下:(1) -d 是否是目录; (2)-z 变量是否存在值; (3)-r、-w 判断文件是否可读和可写; (4) -s 判断文件长度
4、| 表示管道流,即上层的结果,作为层的下输入;比如 ps -aux| awk '$2=='$EPID' :该指令目的就是:列出所有用户的执行程度,然后用 awk 分割,-f 表示可以选择分割符,这里没有用而已;然后选择第二列($2);判断第二列是否与变量值相同,然后在做后续操作
5、>、>>重定向;一个大于号和两个大于号的作用是不同的;通俗的讲:>表示重写,它会将原先存在的东西删除,然后在空白页中补充新的东西进去;>>表示完善:它不会删除原来的基础,而是在后面进行一系列的补充
6、\转义符号,通过转义符号对变量进行转义,比如 echo "$1"是打印第一个变量的值;echo "\$1" 打印的就是字符串\$1
7、运算符号 expr; 用法如下:
#!/bin/sh
B=`expr 1 + 1`
echo "B=${B}"
输出的是B=2,在用expr的时候, 数字、加法符号 要用空隔开,碰到乘法,要用转义符号\ ,比如像这样:"expr 1 \* 2" ,不然的话shell 会认为你输入的是字符串;另外,
8、test:测试真假使用,如果test为真,返回0;否则返回1;判断语句有:(1) -eq 等于; (2)-ne 不等于 (3)-lt 小于 (4) -gt 大于 (5) -le 小于等于 (6) -ge 大于等于
9、函数,shell 声明函数,可以使用function test(){}; 或者直接 test(){};记住:圆括号里面是不能带任何参数的,这个区别跟其他语言的函数有一点区别,我们看一下下面一个例子;
#!/bin/sh
function test()
{
echo "arg1 = $1"
if [$1 = "1"] ; then
echo "1"
else
echo "0"
fi
}
test 1在Linux环境下输出./test.sh 我这个文件命名是test.sh;执行之前记得赋予可执行的权限 chmod +x test.sh 不然会报错,输出结果:arg1=1
<更新:输出结果和输出错误全部合并输出到 file 里面, command > file 2>&1