新聞中心
Linux是當(dāng)今非常流行的操作系統(tǒng)之一,由于其開(kāi)源、穩(wěn)定、高效、安全等諸多優(yōu)點(diǎn),越來(lái)越多的程序員和開(kāi)發(fā)人員開(kāi)始使用Linux。在Linux中,變量是非常重要的概念,經(jīng)常用到的變量有數(shù)值型變量、字符串型變量和數(shù)組等。在實(shí)際開(kāi)發(fā)中,經(jīng)常需要進(jìn)行變量運(yùn)算,如何高效計(jì)算變量值,是每個(gè)Linux開(kāi)發(fā)人員需要掌握的技能。

創(chuàng)新互聯(lián)公司堅(jiān)持“要么做到,要么別承諾”的工作理念,服務(wù)領(lǐng)域包括:做網(wǎng)站、成都網(wǎng)站設(shè)計(jì)、企業(yè)官網(wǎng)、英文網(wǎng)站、手機(jī)端網(wǎng)站、網(wǎng)站推廣等服務(wù),滿足客戶于互聯(lián)網(wǎng)時(shí)代的西峽網(wǎng)站設(shè)計(jì)、移動(dòng)媒體設(shè)計(jì)的需求,幫助企業(yè)找到有效的互聯(lián)網(wǎng)解決方案。努力成為您成熟可靠的網(wǎng)絡(luò)建設(shè)合作伙伴!
一、數(shù)值型變量的運(yùn)算
Linux中常用的數(shù)值型變量有整型和浮點(diǎn)型,整型變量是不帶小數(shù)點(diǎn)的數(shù)值,浮點(diǎn)型變量是帶小數(shù)點(diǎn)的數(shù)值。數(shù)值型變量的運(yùn)算主要包括加、減、乘、除等操作。
1. 加法運(yùn)算
數(shù)值型變量的加法運(yùn)算可以使用“+”符號(hào),例如將1和2相加的操作如下所示:
1+2
運(yùn)行結(jié)果為:
2. 減法運(yùn)算
數(shù)值型變量的減法運(yùn)算可以使用“-”符號(hào),例如將2從1中減去的操作如下所示:
1-2
運(yùn)行結(jié)果為:
-1
3. 乘法運(yùn)算
數(shù)值型變量的乘法運(yùn)算可以使用“*”符號(hào),例如將1乘以2的操作如下所示:
1*2
運(yùn)行結(jié)果為:
4. 除法運(yùn)算
數(shù)值型變量的除法運(yùn)算可以使用“/”符號(hào),例如將2除以1的操作如下所示:
2/1
運(yùn)行結(jié)果為:
二、字符串型變量的運(yùn)算
字符串型變量是包含字符串的變量,在Linux中,字符串的運(yùn)算主要包括連接、比較、截取、替換等操作。
1. 字符串連接
字符串連接可以使用“+”符號(hào)或“.”符號(hào),例如將“hello”和“world”連接的操作如下所示:
“hello”+”world”
或者:
“hello”.”world”
運(yùn)行結(jié)果為:
helloworld
2. 字符串比較
字符串比較可以使用“==”符號(hào)或“!=”符號(hào),例如將“hello”和“world”比較的操作如下所示:
“hello”==”world”
或者:
“hello”!=”world”
運(yùn)行結(jié)果為:
false
3. 字符串截取
字符串截取可以使用“:”符號(hào),例如將字符串“hello world”從第2個(gè)字符開(kāi)始截取6個(gè)字符的操作如下所示:
“hello world”:2:6
運(yùn)行結(jié)果為:
llo wo
4. 字符串替換
字符串替換可以使用“sed”命令,例如將字符串“hello world”中的“hello”替換成“hi”的操作如下所示:
sed ‘s/hello/hi/g’
運(yùn)行結(jié)果為:
hi world
三、數(shù)組的運(yùn)算
數(shù)組是一種包含多個(gè)元素的變量,在Linux中,數(shù)組的運(yùn)算主要包括讀取、遍歷、排序、反轉(zhuǎn)等操作。
1. 讀取元素
數(shù)組中的元素可以使用下標(biāo)值進(jìn)行讀取,例如讀取下標(biāo)為1的元素的操作如下所示:
a=(1 2 3)
echo ${a[1]}
運(yùn)行結(jié)果為:
2. 遍歷數(shù)組
遍歷數(shù)組可以使用“for”循環(huán),例如遍歷數(shù)組$a中的元素的操作如下所示:
a=(1 2 3)
for i in “${a[@]}”; do echo $i; done
運(yùn)行結(jié)果為:
3. 排序數(shù)組
排序數(shù)組可以使用“sort”命令,例如對(duì)數(shù)組$a進(jìn)行升序排序的操作如下所示:
a=(3 1 2)
echo ${a[@]} | tr ‘ ‘ ‘\n’ | sort -n
運(yùn)行結(jié)果為:
4. 反轉(zhuǎn)數(shù)組
反轉(zhuǎn)數(shù)組可以使用“rev”命令,例如對(duì)數(shù)組$a進(jìn)行反轉(zhuǎn)的操作如下所示:
a=(1 2 3)
echo ${a[@]} | rev
運(yùn)行結(jié)果為:
3 2 1
在Linux中,變量運(yùn)算是非常常見(jiàn)的操作,熟練掌握各種變量運(yùn)算的方法,可以提高開(kāi)發(fā)效率,同時(shí)也是Linux開(kāi)發(fā)人員必備的基本技能之一。在實(shí)際開(kāi)發(fā)中,還要視情況選擇合適的方法和工具,以完成更加復(fù)雜的計(jì)算和處理任務(wù)。
相關(guān)問(wèn)題拓展閱讀:
- linux運(yùn)算符 ; & && | 得作用
- linux腳本文件中怎么從文件中讀取數(shù)據(jù)并賦值給變量?
linux運(yùn)算符 ; & && | 得作用
用;號(hào)隔開(kāi)每個(gè)命令, 每個(gè)命令按指畢照從左到右的順序,順序執(zhí)行, 彼此之間不關(guān)心是否失敗, 所有命令都會(huì)執(zhí)行。
上一條命令的輸出,作為下一條命令參數(shù)
方式: command1 | command2
Linux所提供的管道符“|”將兩個(gè)命令隔開(kāi),管清緩道符左邊命令的輸出就會(huì)作為管道符右邊命令的輸入。連續(xù)使用管道意味著之一個(gè)命令的輸出會(huì)作為 第二個(gè)命令的輸入,第二個(gè)命令的輸出又會(huì)作為第三個(gè)命令的輸入,依此類推
利用一個(gè)管道
rpm -qa|grep licq
這條命令使用一個(gè)管道符“|”建立了一個(gè)管道。管道將rpm -qa命令的輸出(包括系統(tǒng)中所有安裝的RPM包)作為grep命令的輸入,從而列出帶有l(wèi)icq字符的RPM包來(lái)。
利用多個(gè)管道
cat /etc/passwd | grep /bin/bash | wc -l
這條命令使用了兩個(gè)管道,利用之一個(gè)管道將cat命令(顯示passwd文件的內(nèi)容)的輸出送給grep命令,grep命令找出含有“/bin /bash”的所有行;第二個(gè)管道將grep的輸出送給wc命令,wc命令統(tǒng)計(jì)出輸入中的行數(shù)。這個(gè)命令的功能在于找出系統(tǒng)中有多少個(gè)用戶使用bash
&放在啟動(dòng)參數(shù)后面表示設(shè)置此進(jìn)程為后臺(tái)進(jìn)程
方式: command1 &
默認(rèn)情況下,進(jìn)程是前臺(tái)進(jìn)程,這時(shí)就把Shell給占據(jù)了,我們無(wú)法進(jìn)行其他操作,對(duì)于那些沒(méi)有交互的進(jìn)程,很多時(shí)候,我們希望將其在后臺(tái)啟動(dòng),可以在啟動(dòng)參數(shù)的時(shí)候加一個(gè)’&’實(shí)現(xiàn)這個(gè)目的。
shell 在執(zhí)行某個(gè)命令的時(shí)候,會(huì)返回一個(gè)返回值,該返回值保存在 shell 變量 ? 中,可以通過(guò) $? 獲取當(dāng)前變量的值,當(dāng) $?==0 時(shí)表示執(zhí)行成功,當(dāng)時(shí) $?==1 (我認(rèn)為是非0的數(shù),返回值在0-255間),表示執(zhí)行失敗。
有時(shí)候,下一條命令依唯正芹賴前一條命令是否執(zhí)行成功。如:在成功地執(zhí)行一條命令之后再執(zhí)行另一條命令,或者在一條命令執(zhí)行失敗后再執(zhí)行另一條命令等。shell 提供了 && 和 || 來(lái)實(shí)現(xiàn)命令執(zhí)行控制的功能,shell 將根據(jù) && 或 || 前面命令的返回值來(lái)控制其后面命令的執(zhí)行。
語(yǔ)法格式如下:
command1 && command2
命令之間使用 && 連接,實(shí)現(xiàn)邏輯與的功能。
只有在 && 左邊的命令返回真(命令返回值 $? == 0 ),&& 右邊的命令才會(huì)被執(zhí)行。
只要有一個(gè)命令返回假(命令返回值 $? == 1 ),后面的命令就不會(huì)被執(zhí)行。
邏輯或的功能
語(yǔ)法格式如下:
command1 || command2
命令之間使用 || 連接,實(shí)現(xiàn)邏輯或的功能。
只有在 || 左邊的命令返回假(命令返回值 $? == 1 ),
|| 右邊的命令才會(huì)被執(zhí)行。這和 c 語(yǔ)言中的邏輯或語(yǔ)法功能相同,即實(shí)現(xiàn)短路邏輯或操作。 只要有一個(gè)命令返回真(命令返回值 $? == 0 ),后面的命令就不會(huì)被執(zhí)行。 –直到返回真的地方停止執(zhí)行。
舉例, ping 命令判斷存活主機(jī)
注意 &>要連起來(lái)寫(xiě)
linux腳本文件中怎么從文件中讀取數(shù)據(jù)并賦值給變量?
1、首先創(chuàng)建一衫基個(gè)名為shell.sh的文件:vi shell.sh。
2、然后輸入頭文件#!/bin/bash。
3、保存,開(kāi)權(quán)限(chmod +x shell.sh)運(yùn)行:./shell.sh。
4、輸入一個(gè)字或世謹(jǐn)返搏符串。
5、想計(jì)算一個(gè)值乘以5,我們要編輯shell.sh(vi shell.sh)腳本命令如下。
6、保存,開(kāi)權(quán)限運(yùn)行:輸出一個(gè)整數(shù)。
linux腳本文件中,從文件中讀取數(shù)據(jù)并賦值給變量的操作旦爛方法和步驟如下:
1、首先,創(chuàng)建一個(gè)名
.sh
ell.sh的文件:vi shell.sh,如下圖所示。
2、晌燃其次,完成上述步驟后,輸入
頭宴遲虛文件
#!/bin/bash,如下圖所示。
3、接著,完成上述步驟后,保存并打開(kāi)權(quán)限(chmod +x shell.sh)并運(yùn)行:./shell.sh,如下圖所示。
4、然后,完成上述步驟后,輸入一個(gè)
字符串
,如下圖所示。
5、隨后,完成上述步驟后,要計(jì)算乘以5的值,需要按如下方式編輯shell.sh(vi shell.sh)腳本命令,如下圖所示。
6、最后,保存,開(kāi)權(quán)限運(yùn)行:輸出一個(gè)整數(shù),如下圖所示。這樣,問(wèn)題就解決了。
假設(shè)文件名稱為tt.txt,山瞎則下列shell腳本可以將6個(gè)數(shù)字賣叢分別賦值給6個(gè)逗配空變量
i=1
for lines in `cat tt.txt`
do
case ${i} in
1) var1=${lines};;
2) var2=${lines};;
3) var3=${lines};;
4) var4=${lines};;
5) var5=${lines};;
6) var6=${lines};;
esac
i=`expr ${i} + 1`
done
echo ${var1}
echo ${var2}
echo ${var3}
echo ${var4}
echo ${var5}
echo ${var6}
linux中變量運(yùn)算的介紹就聊到這里吧,感謝你花時(shí)間閱讀本站內(nèi)容,更多關(guān)于linux中變量運(yùn)算,Linux中的變量運(yùn)算:如何高效計(jì)算變量值,linux運(yùn)算符 ; & && | 得作用,linux腳本文件中怎么從文件中讀取數(shù)據(jù)并賦值給變量?的信息別忘了在本站進(jìn)行查找喔。
成都創(chuàng)新互聯(lián)建站主營(yíng):成都網(wǎng)站建設(shè)、網(wǎng)站維護(hù)、網(wǎng)站改版的網(wǎng)站建設(shè)公司,提供成都網(wǎng)站制作、成都網(wǎng)站建設(shè)、成都網(wǎng)站推廣、成都網(wǎng)站優(yōu)化seo、響應(yīng)式移動(dòng)網(wǎng)站開(kāi)發(fā)制作等網(wǎng)站服務(wù)。
本文標(biāo)題:Linux中的變量運(yùn)算:如何高效計(jì)算變量值(linux中變量運(yùn)算)
轉(zhuǎn)載來(lái)源:http://m.fisionsoft.com.cn/article/cdddogg.html


咨詢
建站咨詢
