日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

Shell教程(三):数组/Arrays、基本运算符

發布時間:2025/3/21 编程问答 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Shell教程(三):数组/Arrays、基本运算符 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

定義數組值:

一個數組變量和標量變量之間的差異可以解釋如下。

說,你正試圖表示各種學生為變量集的名字。每一個單個變量是一個標量變量,如下所示:

NAME01="Zara" NAME02="Qadir" NAME03="Mahnaz" NAME04="Ayan" NAME05="Daisy"

我們可以用一個單一的陣列來存儲所有上述提及的名稱。以下是最簡單的方法創建一個數組變量分配一個值,其索引之一。這是表示,如下所示:

array_name[index]=value

array_name?是數組名,索引是在陣列中,你要設置的項目索引,值是你想要的值設置該項目。?

作為一個例子,下面的命令:

NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz www.yiibai.com" NAME[3]="Ayan" NAME[4]="Daisy"

如果您使用的是ksh shell在這里初始化數組的語法:

set -A array_name value1 value2 ... valuen

如果您使用的是bash shell中,這里是初始化數組的語法:

array_name=(value1 ... valuen)

訪問數組值:

當您設置任何數組變量,并可訪問它,如下所示:

${array_name[index]}

在這里,array_name數組的名稱,index是索引進行訪問的值。下面是一個簡單的例子:

#!/bin/sh ? NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Index: ${NAME[0]}" echo "Second Index: ${NAME[1]}"

This would producefollowing result:

$./test.sh First Index: Zara Second Index: Qadir

您可以訪問數組中的所有項目通過以下方式之一:

${array_name[*]} ${array_name[@]}

?array_name 是數組的名字你所感興趣的 以下是個最簡單的例子:

#!/bin/sh ? NAME[0]="Zara" NAME[1]="Qadir" NAME[2]="Mahnaz" NAME[3]="Ayan" NAME[4]="Daisy" echo "First Method: ${NAME[*]}" echo "Second Method: ${NAME[@]}"

這將產生以下結果:

$./test.sh First Method: Zara Qadir Mahnaz Ayan Daisy Second Method: Zara Qadir Mahnaz Ayan Daisy

?

?

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

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

·????????算術運算符。

·????????關系運算符。

·????????布爾運算符。

·????????字符串運算符。

·????????文件測試操作。

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

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

#!/bin/sh ? val=`expr 2 + 2` echo "Total value : $val"

這將產生以下結果:

Total value : 4

記下有以下幾點:

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

·????????``,稱為倒逗號之間應包含完整的表達。

算術運算符:

算術運算符有以下Bourne Shell支持。

假設變量a=10,變量b=20:

算術運算符例子

運算符

描述

例子

+

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.

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

所有的算術計算,使用長整數。

關系運算符:

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

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

假設變量a=10,變量b=20:

關系運算符

運算符

描述

示例

-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.

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

布爾運算:

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

假設變量一個變量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支持。

假設變量a=“abc”和變量b=“efg”:

關系運算例子

運算符

描述

例子

=

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文件相關聯的各種屬性。

假設一個的變量文件保存現有文件名“test”,其大小為100字節,有讀,寫和執行權限:

文件測試操作例子

操作符

描述

示例

-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 運算符


from: http://www.yiibai.com/shell/what_is_shell.html#

總結

以上是生活随笔為你收集整理的Shell教程(三):数组/Arrays、基本运算符的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。