变量
- 所有变量被视为字符串,并以字符串保存。即使被赋值为数值也是如此。
- 区分大小写。
- 在变量名前加$访问内容。
- 变量赋值,两边不能有空格。
- Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止。
- Shell函数定义的变量默认是global的,其作用域从“函数被调用时执行变量定义的地方”开始,到shell结束或被显示删除处为止。函数定义的变量可以被显示定义成local的,其作用域局限于函数内。但请注意,函数的参数是local的。
条件
if [ -f /bin/bash ] bash是否存在
if [ -d /bin/bash ] bash是否是路径
if语法
if [ ]
then
else if [ ] ; then
else
fi
控制结构
for语法
for foo in bar fud 43 "hello ha"
do
echo $foo
done
while语法
while condition do
statements
done
case语法
casevariable in
pattern [ | pattern] ...) statements;;
pattern [ | pattern]...) statements;;
...
esac
特殊变量
| 变量 | 含义 |
|---|---|
| $0 | 当前脚本的文件名 |
| $n | 传递给脚本或函数的参数。n 是一个数字,表示第几个参数 |
| $# | 传递给脚本或函数的参数个数 |
| $* | 传递给脚本或函数的所有参数 |
| $@ | 传递给脚本或函数的所有参数 |
| $? | 上个命令的退出状态,或函数的返回值 |
| $$ | 当前Shell进程ID。对于 Shell 脚本,就是这些脚本所在的进程ID |
字符串比较
| 字符串比较 | 结果 |
|---|---|
| -n string | 如果字符串不为空返回true |
| -z string | 如果字符串为空返回true |
wc命令
- 语法:
wc [-lwm] file - l 统计行
- w 统计字
- m 统计字符
参数扩展
| 参数扩展 | 说明 |
|---|---|
| ${param:-default} | 如果param为空,则把它设为default值 |
| ${#param} | 给出param的长度 |
| ${param%word} | 从param的尾部开始,删除与Word匹配的最小部分,然后返回剩余部分 |
| ${param%%word} | 从param的尾部开始,删除与Word匹配的最长部分,然后返回剩余部分 |
| ${param#word} | 从param的头部开始,删除与Word匹配的最长部分,然后返回剩余部分 |
| ${param##word} | 从param的头部开始,删除与Word匹配的最长部分,然后返回剩余部分 |
本文介绍Shell脚本的基础知识,包括变量定义与使用、条件与控制结构语法、特殊变量及字符串比较等内容。
33万+

被折叠的 条评论
为什么被折叠?



