shell編程-一些簡單的運算符
每天進步一點點,從量變到質量。
今天講講shell編程中的運算符。學過例如c,java等語言的人可能都知道運算符是啥個東東,也知道如何使用各種運算符。不過,shell的運算符和其他大部分編程語言還是有那麼一點點差別的。不信你往下看。
先說說講的大體內容
算術運算符
關係運算符
有關字元串的運算符
算術運算符
估計可能還有些人不清除啥是算術運算符、啥是關係運算符。說白了算術運算符就是最基本的那些運算符,即加減乘除、取余、賦值(=)等這些基本的、最常用的運算符。
對於shell中數與數之間的運算還是和其他語言有那麼一點區別。例如要你算a=5+10。可能在別的語言中,你直接
就可以了。但是很抱歉,在shell中行不通。如果你這樣寫,在shell中a的值不是15,a的值就是」5+10」這個字元串。
所以我們需要藉助其他命令來實現,如awk和expr這些命令。其中expr算是用的比較多,因此,我們也用expr這個命令來解決數值之間的運算。至於怎麼用,簡單粗暴,直接看程序:
執行腳本的結果
注意點
等號之間不能有空格
表達式expr以及加號+與數值之間要有空格
使用的是反引號`把他們圈起來,而不是單引號。
問題:為啥他們之間要有空格?
考考你。
下面我演示一下加減乘除。
輸出結果
注意點
乘號(*)前邊需要加轉義字元()才行哦。
在MAC中shell的expr語法相當於:$((表達式)),此處表達式中的」*」不需要加轉義字元
關係運算符
關係運算符就是用來比較兩個數之間的大小的。不過需要注意的是,我下面列舉的關係運算符是不支持字元串的,除非字元串的值是數字
常用關係運算符如下:
-eq:判斷是否相等,相等則返回true,否則返回false。下面類似
-nq:判斷是否不相等。
-gt:判斷左邊的數是否大於右邊的。
-lt:判斷左邊的數是否小於右邊的。
-ge:判斷左邊的數是否大於等於右邊
-le:判斷左邊的數是否小於等於右邊。
直接看程序,相信你們看一下就知道如何使用了,這些都挺簡單,沒有什麼好詳細講的。
輸出結果:
我就演示一個,其他類似。
有關字元串的一些運算符
下面列舉一些常用於字元串的運算符
=:判斷兩個字元串是否相等。相等則返回true,否則返回false。注意啊,這個和我們平時用的』==』不一樣哦。
!=:判斷兩個字元串是否不相等。
-z:檢測字元串的長度是否為0。
-n:檢測字元串長度是否不為0。
str:檢測字元串是否為空。
簡單暴力,直接代碼演示,相信聰明的你們一眼就知道怎麼用了
輸出結果:
大家多動手試試勒
好吧,可能要跟大家說聲抱歉。講著講著講的有點粗糙。也有點隨便。本來想好好扯的,還有很多細節很多知識。不過·····不知為啥,就突然內心有點煩躁····居然煩躁那可以留著明天或者之後寫啊。不過雖然是簡單的一點東西,但是寫起來真的很花時間,就不想留了之後寫了。在此要和大家說聲抱歉。也感謝大家的閱讀,希望對你有所幫助勒。
TAG:苦逼的碼農 |