十分钟带你学会 Shell 脚本! shell语言( 二 )


创建测试脚本:
touch test.sh赋值执行权限:
chmod u x test.sh编写脚本:
vim test.sh定义全局脚本(脚本内容如下):
export user_name="张三"#!/bin/bash echo $user_name5. 由于定义了全局变量 , 所以执行脚本可以正常输出 $user_name 变量的值 , 反之脚本中定义的局部变量 , 其它脚本中不可以正常输出结果 。
./test.sh运算符运算符的种类大致可以分为(直接上代码示例)4 种 。
算数运算符#!/bin/basha=10b=20# 加法val=`expr $a$b`echo "ab : $val"# 减法val=`expr $a - $b`echo "a - b : $val"# 乘法val=`expr $a * $b`echo "a * b : $val"# 除法val=`expr $b / $a`echo "b / a : $val"# 取余val=`expr $b % $a`echo "b % a : $val"# 等于if [ $a == $b ]thenecho "a 等于 b"fiif [ $a != $b ]thenecho "a 不等于 b"fi关系运算符#!/bin/basha=10b=20# 等于if [ $a -eq $b ]thenecho "$a -eq $b : a 等于 b"elseecho "$a -eq $b: a 不等于 b"fi# 不等于if [ $a -ne $b ]thenecho "$a -ne $b: a 不等于 b"elseecho "$a -ne $b : a 等于 b"fi# 大于if [ $a -gt $b ]thenecho "$a -gt $b: a 大于 b"elseecho "$a -gt $b: a 不大于 b"fi# 小于if [ $a -lt $b ]thenecho "$a -lt $b: a 小于 b"elseecho "$a -lt $b: a 不小于 b"fi# 大于等于if [ $a -ge $b ]thenecho "$a -ge $b: a 大于或等于 b"elseecho "$a -ge $b: a 小于 b"fi# 小于等于if [ $a -le $b ]thenecho "$a -le $b: a 小于或等于 b"elseecho "$a -le $b: a 大于 b"fi布尔运算符#!/bin/basha=10b=20# !非运算 , 跟 java 一样if [ $a != $b ]thenecho "$a != $b : a 不等于 b"elseecho "$a == $b: a 等于 b"fi# 与运算 , 跟 java 里面的 && 一样if [ $a -lt 100 -a $b -gt 15 ]thenecho "$a 小于 100 且 $b 大于 15 : 返回 true"elseecho "$a 小于 100 且 $b 大于 15 : 返回 false"fi# 或运算 , 与 java 里面的 || 同理if [ $a -lt 100 -o $b -gt 100 ]thenecho "$a 小于 100 或 $b 大于 100 : 返回 true"elseecho "$a 小于 100 或 $b 大于 100 : 返回 false"fiif [ $a -lt 5 -o $b -gt 100 ]thenecho "$a 小于 5 或 $b 大于 100 : 返回 true"elseecho "$a 小于 5 或 $b 大于 100 : 返回 false"fi字符串运算符#!/bin/basha="abc"b="efg"# 判断字符串是否相等if [ $a = $b ]thenecho "$a = $b : a 等于 b"elseecho "$a = $b: a 不等于 b"fi# 判断字符串不相等if [ $a != $b ]thenecho "$a != $b : a 不等于 b"elseecho "$a != $b: a 等于 b"fi# -n 判断字符串长度是否不为 0if [ -n "$a" ]thenecho "-n $a : 字符串长度不为 0"elseecho "-n $a : 字符串长度为 0"fi# 与 -n 相反if [ -z $a ]thenecho "-z $a : 字符串长度为 0"elseecho "-z $a : 字符串长度不为 0"fi# $ 表示检查字符串是否为空if [ $a ]thenecho "$a : 字符串不为空"elseecho "$a : 字符串为空"fi流程控制if else 不再做介绍 , 上述运算符案例中有大量使用 , 对于后端开发及其简单 , 流程控制在程序用使用非常频繁 。
case 语法直接套用最后的 *) 表示默认模式 , 相当于 Java 中的 default , ;; 表示命令序列结束 , 相当于 Java 中的 break 。

猜你喜欢