命令行参数
算数运算符
算数运算符和C中都一样,但是shell本身并没有这个功能,需要使用expr(他的功能是计算等)
python的执行速度可能不是很优秀,但是它的计算速度上十分突出,数学好的小伙伴真的别浪费聪明的头脑,人生苦短啊!!!
其他的算数运算符和C中的一样,取模等也都有.
关系运算符
shell中 ==(只能判断数字,字符串中也必须只是数字) != 和C中一样,但是没有>小于
其他关系运算符
-eq | 检测两个数是否相等,相等返回 true。 | [ $a -eq $b ] 返回 false。 |
-ne | 检测两个数是否不相等,不相等返回 true。 | [ $a -ne $b ] 返回 true。 |
-gt | 检测左边的数是否大于右边的,如果是,则返回 true。 | [ $a -gt $b ] 返回 false。 |
-lt | 检测左边的数是否小于右边的,如果是,则返回 true。 | [ $a -lt $b ] 返回 true。 |
-ge | 检测左边的数是否大于等于右边的,如果是,则返回 true。 | [ $a -ge $b ] 返回 false。 |
-le | 检测左边的数是否小于等于右边的,如果是,则返回 true。 | [ $a -le $b ] 返回 true。 |
python中就和C中的完全一样了
逻辑运算符
a=1 b=1为变量
shell中 -a 与 [$a -a $b], -o 或 [$a -o $b], ! 非[! a] 全部返回bool值
python中 and 与 (a and b) 返回b, or 或 (a or b) 返回a, not 非 not(a) 返回布尔值
python中的与和或返回的是截断值并不一定是布尔值.当然了0是假,非0是真在python中同样遵守
字符串运算符
shell中
str1="aaa" str2="bbb"
[$str1 = $str2] 判断两个字符串是否相等返回bool
[-z $str1] 判断是否是空串返回bool
[-n $str1] 效果和 -z 相反
[$str1] 不为空返回真
python中字符串功能太多,就不叙述了.
毕竟shell编程目的还是认识能看懂脚本语言.
文件测试运算符
shell中独有的,当然了其他语言可以实现.
-b file | 检测文件是否是块设备文件,如果是,则返回 true。 | [ -b $file ] 返回 false。 |
-c file | 检测文件是否是字符设备文件,如果是,则返回 true。 | [ -c $file ] 返回 false。 |
-d file | 检测文件是否是目录,如果是,则返回 true。 | [ -d $file ] 返回 false。 |
-f file | 检测文件是否是普通文件(既不是目录,也不是设备文件),如果是,则返回 true。 | [ -f $file ] 返回 true。 |
-g file | 检测文件是否设置了 SGID 位,如果是,则返回 true。 | [ -g $file ] 返回 false。 |
-k file | 检测文件是否设置了粘着位(Sticky Bit),如果是,则返回 true。 | [ -k $file ] 返回 false。 |
-p file | 检测文件是否是有名管道,如果是,则返回 true。 | [ -p $file ] 返回 false。 |
-u file | 检测文件是否设置了 SUID 位,如果是,则返回 true。 | [ -u $file ] 返回 false。 |
-r file | 检测文件是否可读,如果是,则返回 true。 | [ -r $file ] 返回 true。 |
-w file | 检测文件是否可写,如果是,则返回 true。 | [ -w $file ] 返回 true。 |
-x file | 检测文件是否可执行,如果是,则返回 true。 | [ -x $file ] 返回 true。 |
-s file | 检测文件是否为空(文件大小是否大于0),不为空返回 true。 | [ -s $file ] 返回 true。 |
-e file | 检测文件(包括目录)是否存在,如果是,则返回 true。 | [ -e $file ] 返回 true。 |
条件判断语句
注意shell中空格是必须添加的,python条件语句后的 :
代码的缩进就是一个语句块
shell也就到这里了,当然这些只是基础,可是够用了.因为目的是为了能看懂shell.
如果真的需要写,C/C++完全可以胜任,当然了代码量也会感人.