shell

来源:互联网 发布:teamviever网络未就绪 编辑:程序博客网 时间:2024/06/04 20:09

变量

  • 所有变量被视为字符串,并以字符串保存。即使被赋值为数值也是如此。
  • 区分大小写。
  • 在变量名前加$访问内容。
  • 变量赋值,两边不能有空格。
  • 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匹配的最长部分,然后返回剩余部分