变量
位置参数
变量 | 意义 |
---|---|
$0 | 当前脚本文件名 |
$n | 传递给脚本或者函数的参数 |
$# | 传递给脚本或者函数的参数个数 |
$? | 命令的退出状态0表示没有错误,非零表示有错误 |
$@ | 传递到脚本的所有参数 |
$$ | 当前脚本的进程号 |
$0 | 当前脚本文件名 |
本地变量
变量赋值
1 | variable=value |
shell语句中等号两边绝对不能加空格!!!
${variable=value}只能用在语句内部 单独成行报错
变量替换
1 | variable |
推荐使用第二种方法,因为如果变量名后面要跟如下内容:非小写字符串(包括大小字符串)、数字或下划线,那么变量名就一定要用大括号包起来
引用
引用的作用:引用时屏蔽特殊字符的特殊意义,而将其解释为字面意义。也可以将引用理解为屏蔽。
|引用|意义|
| :——– | ——–:|
|””|引用除美元符号($)、反引号()和反斜线(\)之外的所有字符|
|''|引用所有字符|
|`
|解析为系统命令|
|\|屏蔽下一个字符的特殊意义|
函数
定义方式:
1 | function 函数名() { |
通过位置变量传递参数$n作用域仅仅为函数内部
1 | !/bin/bash |
函数的调用一定要在声明之后
判断
if语句基本格式1
2
3
4
5if [ command ];then
command
elif [ command ];then
command
fi
注意 command两边都是空格,最后一定要加上fi,mmp应该是[]两边都必须是空格 烦死了
文件/文件夹判断
命令 | 意义 |
---|---|
-b | file存在,且是块特殊文件则为真 |
-c | file存在,且是字特殊文件则为真 |
-d | dir存在,且是一个目录则为真 |
-e | 文件/文件夹存在则为真 |
-f | 文件存在则为真 |
-f | 文件存在则为真 |
循环
while
计数器形式
1 | !/bin/shell |