- shell脚本的定义:脚本是包含新一系列命令序列的文本文件,在运行这个脚本的时候,这些命令将得到执行。
- shell脚本的变量:在赋值的时候可以不加$,在引用的时候需要加$
- 脚本的开头为#!/bin/bash
- 打印命令echo 后面可以加双引号,也可以不加
- 参数:$#:在执行shell脚本时命令行传入脚本的参数个数
$*:在执行shell脚本时命令行传入脚本的所有的参数
$0:命令行本身(shell脚本文件名)
$1:第一个出入的参数
$2:第二个传入的参数
例如。/hello.sh abc 3
6.数学运算:不同于普通的运算 需要用expr 加上反引号
如:
var1=5 var2=10 var3=`expr $var1+$var2` echo var3 |
7.流程控制语句
if语句
if [条件] then commands else commands fi |
for语句
for var in lis do commands done |
while语句
while [ 条件 ] do commands done |
8.条件比较
整数操作:相同(-eq或=)、不同(-ne或!=)、大于(-gt或>)、小于(-lt或<)、大于等于(ge)、小于等于(-le)、为空(-z)、不为空(-n)、
字符串操作:相同(-eq)、不同(-ne)、大于(-gt)、小于(-lt)、大于等于(ge)、小于等于(-le)、为空(-z)、不为空(-n)、
文件操作:-e(文件已存在)、-f(文件是普通文件)、-s(文件大小不为零) -d(文件是一个目录)、-r(文件对当前用户可以读取)、-w(文件对当前用户可以写入)、-x(文件对当前用户可以执行)、
注:如果是单个变量的判断,比较符号放在变量前面
9.1在进行比较操作时:[ ]的左右都用空格 =左右也都有空格和赋值运算不同(不需要空格)
10.
#!/bin/sh
folder=/home
[ -r "$folder" ] && echo "Can read $folder" #&&代表条件成立时执行 后面的代码
[ -f "$folder" ] || echo "this is not file" #||条件不成立时执行后面的代码