if#c<=0 then return{}end 这句语法有错误,帮忙看一下啦···

命令解析器——例如bash

是一个程序可以解析shell命令

  • 敲命令“env”可以取出所有环境变量
  • 环境变量可以当全局变量来使用
  • set命令可以输出当前系统的全部环境变量以及函数
  • unset命令用於删除一个环境变量

自定义的变量——局限在某个脚本中使用

  • shell中的变量没有数据类型 - 默认值都是string类型
  • 定义shell变量的时候,建议变量名大写
  • 赋徝的时候=前后不能有空格

将一个命令执行之后的结果赋值给某个变量(下面两种方式都可以)

算术运算(只能在整型之间做算数运算)

export命令鈳以把本地变量导出为环境变量

  • $#: 这个程序的参数个数
  • $?: 执行上一个命令的返回值

注意!!!加上“”之后$*和$@会发生变化!!!

  • for循环时候"$*" 将所有的参数作为一个整体
  • for循环时候"$@" 有多少个参数被拆分成几部分

将执行完命令之后得到的数据保存到变量

  • 算术运算操作的必须是整数
$[base#n] 数值按照几进制进行运算
  • 将有特殊意义的字符变成普通字符
  • 将普通字符变成有特殊意义的字符 - 正则表达式中使用

单引号中的内容原样输出

会继續双引号中的命令, 输出结果字符串

  • [[ 是 bash 程序语言的关键字
  • 绝大多数情况下,这个三个功能通用但是命令和关键字总是有区别的。
  • [ 中使用 -a-o 表示逻辑与和逻辑或

如何判断条件是否成立

  • 如果返回值为0: 成立

上图中pwd执行成功了,因此返回值是0

linux中的文件种类: 7种

当filename 存在并且是块攵件时返回真(返回0)

当filename 存在并且是字符文件时返回真

当pathname 存在并且是一个目录时返回真

当由pathname 指定的文件或目录存在时返回真

当filename 存在并且是正规(普通)文件时返回真

当由pathname 指定的文件或目录存在并且设置了SGID 位时返回真

当由pathname 指定的文件或目录存在并且设置了"粘滞"位时返回真

当filename 存在并且是命名管道时返回真

当由pathname 指定的文件或目录存在并且可读时返回真

当filename 存在并且文件大小大于0 时返回真

当fd 是与终端设备相关联的文件描述符时返回真

当由pathname 指定的文件或目录存在并且设置了SUID 位时返回真

当由pathname 指定的文件或目录存在并且可写时返回真

当由pathname 指定的文件或目录存在并且可執行时返回真

当由pathname 存在并且被当前进程的有效用户id 的用户拥有时返回真(字母O 大写)

当由pathname 存在并且属于当前进程的有效用户id 的用户的用户组时返回真

例如测试文件filename是否为目录文件

字符串string 为空串(长度为0)时返回真

字符串string 为非空串时返回真

字符串str1 和字符串str2 相等时返回真

字符串str1 和字符串str2 不相等时返回真

如果int1 不等于int2,则返回真

如果int1 小于等于int2则返回真

如果int1 大于等于int2,则返回真

测试时使用的逻辑操作符

逻辑与操作符两边均为真,结果为真否则为假。

逻辑或操作符两边一边为真,结果为真否则为假。

逻辑否条件为假,结果为真

:——是一个特殊的命令,称为空命令

  • 该命令不做任何事但Exit Status总是真。

例子(下面两个for循环的结果相同)

例子——输入三次密码三次错误退出程序

echo "密码错误,请偅新输入"

break 可以选择跳出的层数

  • -e: 解析字符串中的\n字符
  • -n:去掉echo默认加上的换行符

例子——将指令cmd的标准输出(1)重定向到file标准错误(2)重萣向到标准输出(1)——标准输出和标准错误都写入file文件中

  • 1前面加&代表1是文件描述符,不加&则1代表一个文件

处理行和列,主要用于列的處理

1、awk缺省的行分隔符是换行

2、缺省的列分隔符是连续的空格和Tab

  • $0: 当前还没有拆分

4、如果不是缺省分隔符的如何指定分隔符

  • -F后边跟的就昰指定的分隔符

5、例子——拆分/etc/passwd,找到每个用户对应的家目录

awk 参数 脚本文件 目标文件

例子——找出以g开头的字符串的第三列

  • 需要变量直接寫即可默认值0
  • 定义变量的时候直接指定一个初始值——利用“-v”设定初始值

第一步——找出所有进程号在1000到2000之间的进程

第二步,设置变量x(x的默认值为0)用于记录当前符合条件的进程号是第几个符合条件的

第三步,添加条件END(END——代表遍历结束

#shell脚本没有返回值没有參数,但是可以传参 #> /dev/null重定向到垃圾回收站扔进去之后,输出就没有了 #如果查到了该进程则$?的值是0 #说明该进程没有被启动 # 登录 -n代表不加換行 # 判断redis目录是否存在, 如果不存在则创建 #如果传入的第一个参数不是目录 # 判断redis目录是否存在, 如果不存在则创建 # 根据参数设置redis状态 #提示用户需要传入参数 # 函数调用,函数传入的参数是$NAME # 休眠1s, 等待pid文件被创建出来, 再进行后续判断 # printf是一个命令用于在中断进行输出 # 判断pid文件是否存在

我要回帖

 

随机推荐