Unix / Linux - Shell 字符串运算符
-
简述
Bourne Shell 支持 wing 字符串运算符。假设变量 a 保存“abc”和变量 b 持有“efg”然后 -操作符 描述 例子 = 检查两个操作数的值是否相等;如果是,则条件变为真。 [ $a = $b ] is not true. != 检查两个操作数的值是否相等;如果值不相等,则条件变为真。 [ $a != $b ] is true. -z 检查给定的字符串操作数大小是否为零;如果长度为零,则返回 true。 [ -z $a ] is not true. -n 检查给定的字符串操作数大小是否非零;如果它是非零长度,则返回 true。 [ -n $a ] is not false. str 检查是否 str不是空字符串;如果为空,则返回false。 [ $a ] is not false. -
例子
这是一个使用所有字符串运算符的示例 -#!/bin/sh a="abc" b="efg" if [ $a = $b ] then echo "$a = $b : a is equal to b" else echo "$a = $b: a is not equal to b" fi if [ $a != $b ] then echo "$a != $b : a is not equal to b" else echo "$a != $b: a is equal to b" fi if [ -z $a ] then echo "-z $a : string length is zero" else echo "-z $a : string length is not zero" fi if [ -n $a ] then echo "-n $a : string length is not zero" else echo "-n $a : string length is zero" fi if [ $a ] then echo "$a : string is not empty" else echo "$a : string is empty" fi
上面的脚本将生成以下结果 -abc = efg: a is not equal to b abc != efg : a is not equal to b -z abc : string length is not zero -n abc : string length is not zero abc : string is not empty
使用运算符时需要考虑以下几点 --
运算符和表达式之间必须有空格。例如,2&plus2 不正确。它应该写为 2 + 2。
-
if...then...else...fi 声明是一个决策声明,在下一章中已经解释过。
-