read
-a 后跟一个变量,该变量会被认为是个数组,然后给其赋值,默认是以空格为分割符。
-d 后面跟一个标志符,其实只有其后的第一个字符有用,作为结束的标志。
-p 后面跟提示信息,即在输入前打印提示信息。
read -p "password: " password
-e 在输入的时候可以使用命令补全功能。
-n 后跟一个数字,定义输入文本的长度,很实用。
read -n 3 -sp "password: " password
-r 屏蔽,如果没有该选项,则作为一个转义字符,有的话 就是个正常的字符了。
-s 安静模式,在输入字符时不再屏幕上显示,例如login时输入密码。
read -sp "password: " password
-t 后面跟秒数,定义输入字符的等待时间。
read -p "Input a number: " -t 5 number
echo
–n 表示不换行输出
$#:表示命令行中位置参数的个数
$*:表示所有位置参数的内容
$?:表示前一条命令执行后返回状态,返回值为0表示执行正确,返回值非0表示出现异常。
$0:表示当前执行的脚本或程序名称。
在双引号范围内使用“$”符号可以引用其他变量的值(变量引用),从而能够直接调用现有变量的值来赋值给新的变量。
反撇号(`):
反撇号主要用于命令替换、允许将执行某个命令的屏幕输出结果赋值给变量。反撇号括起来的范围必须是能够执行的命令,否则将会出错。
[ ]
-e; 测试目录或文件是否存在(Exist).
[ -e /bin/bash ]
-d:测试是否为目录(Drecry) 2233
[ -d /bin/bash ]
-f:测试是否为文件(file)
[ -f /bin/bash ]
-r: 测试当前用户是否有权限读取(Read)
[ -r /bin/bash ]
-w:测试当前用户是否有权限写入(Write).
[ -w /bin/bash ]
-x:测试是否设置有可执行(Excute) 权限.
[ -x /bin/bash ]
-L
[ -x /bin/bash ] && echo yes
错误不显示
逻辑测试
&&:逻辑与,表示“而且”,只有当前后两个条件都成立时,整个测试命令的返回值才为0 (结果成立).使用Test命令测试时,~&&” 可改为“-a”.
||:逻辑或,表示“或者”,只要前后两个条件中有一个成立,整个测试命令的返回值即为0 (结果成立).使用Test命令测试时,"||” 可改为“-o”。
!:逻辑否,表示“不,只有当指定的条件不成立时,整个测试命令的返回值才为0(结果成立).
整数值比较
-eq:第一个数等于(Eqa) 第二个数。
-ne:第一个数不等于(NatEaqal第二个数。
-gt:第一个数大于(Greater Than) 第二个数。
-lt:第一个数小于Lesse Than) 第二个数。
-le: 第一个数小于或等于Lesse a Equal) 第二个数。
-ge: 第一个数大于或等于 (Greater a Equal) 第二个数。
字符串比较
=:第一个字符串与第二个字符串相同,
!=:第一个字符串与第二个字符串不相同, 其中!符号表示取反。
-z:检查字符串是否为空 (Zero).对于未定义或赋予空值的变量将视为空串。为空时成立 “0”
Shell环境根据命令执行后的返回状态值($?)来判断是否执行成功,当返回值为0时表示成功,
否则(非0值)表示失败或异常