如果您從事過C語言編程方面的工作,那么您可能會對bash shell中for命令的工作方式有點驚奇。在C語言中, for循環(huán)通常定義一個變量,然后這個變量會在每次迭代時自動改變。通常程序員會將這個變量用作計數(shù)器,并在每次迭代中讓計數(shù)器增一或減一。bash的for命令也提供了這個功能。今天,南昌網(wǎng)絡(luò)公司小編重點教大家如何在bash shell腳本中使用C語言風格的for命令,下面就一起跟隨小編的步伐來看看!
C語言的for命令有一個用來指明變量的特定方法,一個必須保持成立才能繼續(xù)迭代的條件, 以及另一個在每個迭代中改變變量的方法。當指定的條件不成立時,for循環(huán)就會停止。條件等式通過標準的數(shù)學符號定義。比如,考慮下面的C語言代碼:
for (i = 0; i < 10; i++)
{
printf("The next number is %dn", i);
}
這段代碼產(chǎn)生了一個簡單的迭代循環(huán),其中變量i作為計數(shù)器。第一部分將一個默認值賦給該變量。中間的部分定義了循環(huán)重復(fù)的條件。當定義的條件不成立時,for循環(huán)就停止迭代。 后一部分定義了迭代的過程。在每次迭代之后,后一部分中定義的表達式會被執(zhí)行。在本例中,i變量會在每次迭代后增一。
bash shell也支持一種for循環(huán),它看起來跟C語言風格的for循環(huán)類似,但有一些細微的不同,其中包括一些讓shell腳本程序員困惑的東西。以下是bash中C語言風格的for循環(huán)的基本格式。
for (( variable assignment ; condition ; iteration process ))
C語言風格的for循環(huán)的格式會讓bash shell腳本程序員摸不著頭腦,因為它使用了C語言風格的變量引用方式而不是shell風格的變量引用方式。C語言風格的for命令看起來如下:
for (( a = 1; a < 10; a++ ))
注意,有些部分并沒有遵循bash shell標準的for命令:
1、變量賦值可以有空格;
2、條件中的變量不以美元符開頭;
3、迭代過程的算式未用expr命令格式。
shell開發(fā)人員創(chuàng)建了這種格式以更貼切地模仿C語言風格的for命令。這雖然對C語言程序員來說很好,但也會把專家級的shell程序員弄得一頭霧水。在腳本中使用C語言風格的for循環(huán)時要小心。
以下是在bash shell程序中使用C語言風格的for命令的一個例子,大家認真看一下:
$ cat test8
#!/bin/bash
# testing the C-style for loop
for (( i=1; i <= 10; i++ ))
do
echo "The next number is $i"
done
$ ./test8
The next number is 1
The next number is 2
The next number is 3
The next number is 4
The next number is 5
The next number is 6
The next number is 7
The next number is 8
The next number is 9
The next number is 10
$
for循環(huán)通過定義好的變量(本例中是變量i)來迭代執(zhí)行這些命令。在每次迭代中,$i變量包含了for循環(huán)中賦予的值。在每次迭代后,循環(huán)的迭代過程會作用在變量上,在本例中,變量增一。
以上就是南昌網(wǎng)絡(luò)公司小編為大家介紹的如何在bash shell腳本中使用C語言風格的for命令的方法,是不是感覺很簡單呢?如果大家還有哪些不明白的地方,可隨時來電和我們聯(lián)系,百恒專業(yè)為您解答!