在线观看不卡亚洲电影_亚洲妓女99综合网_91青青青亚洲娱乐在线观看_日韩无码高清综合久久

鍍金池/ 教程/ Linux/ Shell 基本運算符
Shell 輸入/輸出重定向
Shell 循環(huán)類型
Shell是什么?
Shell 特殊變量
Shell 算術(shù)運算符示例
Shell 關(guān)系運算符示例
Shell 替代
Shell 函數(shù)
Shell 條件語句
Shell 聯(lián)機幫助
Shell 數(shù)組/Arrays
Shell 布爾運算符范例
Shell
Shell if...elif...fi 語句
Shell case...esac 語句
Shell 使用Shell變量
Shell 文件測試符例子
Shell 基本運算符
Korn Shell 運算符
Shell 字符串運算范例
Shell while 循環(huán)
Shell 引用機制
Shell if...else...fi 語句
Shell select 循環(huán)
C Shell運算符
Shell 循環(huán)控制break/continue
Shell for循環(huán)
Shell until 循環(huán)
Shell if...fi語句

Shell 基本運算符

有各種不同的運算符shell都支持。本教程是基于默認shell(Bourne),所以我們要涵蓋所有重要的Bourne Shell運算符。

有以下的運算符,我們將要討論的:

  • 算術(shù)運算符。

  • 關(guān)系運算符。

  • 布爾運算符。

  • 字符串運算符。

  • 文件測試操作。

Bourne shell的最初并沒有任何機制來執(zhí)行簡單的算術(shù),但它使用外部程序,無論是awk或必須簡單的程序expr。

下面是簡單的例子,把兩個數(shù)相加:

#!/bin/sh

val=`expr 2 + 2`
echo "Total value : $val"

這將產(chǎn)生以下結(jié)果:

Total value : 4

記下有以下幾點:

  • 運算符和表達式之間必須有空格,例如2+2是不正確的,因為它應(yīng)該寫成2 + 2。

  • ``,稱為倒逗號之間應(yīng)包含完整的表達。

算術(shù)運算符:

算術(shù)運算符有以下Bourne Shell支持。

假設(shè)變量a=10,變量b=20:

算術(shù)運算符例子

運算符 描述 例子
+ Addition - Adds values on either side of the operator `expr $a + $b` will give 30
- Subtraction - Subtracts right hand operand from left hand operand `expr $a - $b` will give -10
* Multiplication - Multiplies values on either side of the operator `expr $a * $b` will give 200
/ Division - Divides left hand operand by right hand operand `expr $b / $a` will give 2
% Modulus - Divides left hand operand by right hand operand and returns remainder `expr $b % $a` will give 0
= Assignment - Assign right operand in left operand a=$b would assign value of b into a
== Equality - Compares two numbers, if both are same then returns true. [ $a == $b ] would return false.
!= Not Equality - Compares two numbers, if both are different then returns true. [ $a != $b ] would return true.

這是非常重要的,這里要注意,所有的條件式將放在方括號內(nèi),他們身邊有一個空格,例如 [ $a == $b ]是正確的,為[$a==$b] 是不正確的。

所有的算術(shù)計算,使用長整數(shù)。

關(guān)系運算符:

Bourne Shell的支持,關(guān)系運算符的具體數(shù)值。這些運算符不能使用字符串值,除非它們的值是數(shù)字。

例如,運算符將努力檢查10和20之間的關(guān)系,以及在“10”和“20”,但不是“10”和“21”之間。

假設(shè)變量a=10,變量b=20:

關(guān)系運算符

運算符 描述 示例
-eq Checks if the value of two operands are equal or not, if yes then condition becomes true. [ $a -eq $b ] is not true.
-ne Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. [ $a -ne $b ] is true.
-gt Checks if the value of left operand is greater than the value of right operand, if yes then condition becomes true. [ $a -gt $b ] is not true.
-lt Checks if the value of left operand is less than the value of right operand, if yes then condition becomes true. [ $a -lt $b ] is true.
-ge Checks if the value of left operand is greater than or equal to the value of right operand, if yes then condition becomes true. [ $a -ge $b ] is not true.
-le Checks if the value of left operand is less than or equal to the value of right operand, if yes then condition becomes true. [ $a -le $b ] is true.

這里要注意,所有的條件式將放在方括號內(nèi),他們周圍有一個空格,這是非常重要的,例如 [ $a <= $b ]是正確的, [$a <= $b]是不正確的。

布爾運算:

布爾運算符有以下Bourne Shell的支持。

假設(shè)變量一個變量b=10,然后變量b=20:

布爾運算示例

運算符 描述 示例
! This is logical negation. This inverts a true condition into false and vice versa. [ ! false ] is true.
-o This is logical OR. If one of the operands is true then condition would be true. [ $a -lt 20 -o $b -gt 100 ] is true.
-a This is logical AND. If both the operands are true then condition would be true otherwise it would be false. [ $a -lt 20 -a $b -gt 100 ] is false.

字符串運算符:

有下列字符串運算由Bourne Shell支持。

假設(shè)變量a=“abc”和變量b=“efg”:

關(guān)系運算例子

運算符 描述 例子
= Checks if the value of two operands are equal or not, if yes then condition becomes true. [ $a = $b ] is not true.
!= Checks if the value of two operands are equal or not, if values are not equal then condition becomes true. [ $a != $b ] is true.
-z Checks if the given string operand size is zero. If it is zero length then it returns true. [ -z $a ] is not true.
-n Checks if the given string operand size is non-zero. If it is non-zero length then it returns true. [ -z $a ] is not false.
str Check if str is not the empty string. If it is empty then it returns false. [ $a ] is not false.

文件測試操作:

有以下是操作測試Unix文件相關(guān)聯(lián)的各種屬性。

假設(shè)一個的變量文件保存現(xiàn)有文件名“test”,其大小為100字節(jié),有讀,寫和執(zhí)行權(quán)限:

文件測試操作例子

操作符 描述 示例
-b file Checks if file is a block special file if yes then condition becomes true. [ -b $file ] is false.
-c file Checks if file is a character special file if yes then condition becomes true. [ -b $file ] is false.
-d file Check if file is a directory if yes then condition becomes true. [ -d $file ] is not true.
-f file Check if file is an ordinary file as opposed to a directory or special file if yes then condition becomes true. [ -f $file ] is true.
-g file Checks if file has its set group ID (SGID) bit set if yes then condition becomes true. [ -g $file ] is false.
-k file Checks if file has its sticky bit set if yes then condition becomes true. [ -k $file ] is false.
-p file Checks if file is a named pipe if yes then condition becomes true. [ -p $file ] is false.
-t file Checks if file descriptor is open and associated with a terminal if yes then condition becomes true. [ -t $file ] is false.
-u file Checks if file has its set user id (SUID) bit set if yes then condition becomes true. [ -u $file ] is false.
-r file Checks if file is readable if yes then condition becomes true. [ -r $file ] is true.
-w file Check if file is writable if yes then condition becomes true. [ -w $file ] is true.
-x file Check if file is execute if yes then condition becomes true. [ -x $file ] is true.
-s file Check if file has size greater than 0 if yes then condition becomes true. [ -s $file ] is true.
-e file Check if file exists. Is true even if file is a directory but exists. [ -e $file ] is true.

C Shell 操作符:

以下鏈接將在C Shell運算符給出簡單的用法。

C Shell 運算符

Korn Shell 運算符:

以下鏈接將在Korn  Shell運算符給出簡單的用法

Korn Shell 運算符