欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

詳解Shell編程之變量數(shù)值計(jì)算(二)

 更新時(shí)間:2018年02月02日 15:56:11   作者:789-yankerp  
本篇文章主要介紹了詳解Shell編程之變量數(shù)值計(jì)算(二),小編覺(jué)得挺不錯(cuò)的,現(xiàn)在分享給大家,也給大家做個(gè)參考。一起跟隨小編過(guò)來(lái)看看吧

OK,數(shù)值運(yùn)算(上)是我看完的一小部分,大概的結(jié)束腳本如下:(回顧~~)

#!/bin/bash 
a=$1 
b=$2 
expr $1 + 1 &>/dev/null 
if [ "$?" -ne "0" ] 
 then 
  echo "請(qǐng)輸入數(shù)字" 
  exit 1 
fi 
 
if [ "$#" -ne "2" ] 
 then 
  echo "請(qǐng)輸入兩個(gè)數(shù)字" 
    exit 1 
fi 
 
echo "a+b=$((a+b))" 
echo "a-b=$((a-b))" 
echo "a*b=$((a*b))" 
echo "a/b=$((a/b))" 
echo "a%b=$((a%b))" 

這個(gè)腳本中包含了,特殊變量,數(shù)值運(yùn)算命令expr判斷語(yǔ)法。一些簡(jiǎn)單的if語(yǔ)句,特殊變量$#的用法。最后實(shí)現(xiàn)了運(yùn)算~ 大家可以參考我的這篇文章:http://www.dbjr.com.cn/article/134292.htm

1、BC命令的用法

bc是UNIX&Linux下的計(jì)算器,因此輸了可以做計(jì)算器使用,還可以作為命令行計(jì)算工具使用

在我們前面說(shuō)的數(shù)值運(yùn)算,我們都是以整數(shù)的形式來(lái)的,但是bc這個(gè)就不一樣了 它可以處理小數(shù)~~~如下:


是不是感覺(jué)很方便的樣子,接下來(lái)將BC用在命令行下面,實(shí)現(xiàn)運(yùn)算

[root@shell-yankerp ~]# echo 1+2 | bc 
3 
[root@shell-yankerp ~]# echo 1.5+1.5 | bc 
3.0 
[root@shell-yankerp ~]# echo 2*2 | bc 
4 
[root@shell-yankerp ~]# echo 8.5-8.5 | bc 
0 
[root@shell-yankerp ~]#  

利用BC配置變量運(yùn)算

[root@shell-yankerp ~]# i=5  #設(shè)置變量 i=5 
[root@shell-yankerp ~]# i=`echo $i+5 | bc` 
[root@shell-yankerp ~]# echo $i  
10 
[root@shell-yankerp ~]#  

根據(jù)bc具有的特殊性質(zhì)來(lái)來(lái)看,如果是小數(shù),那么它處理是沒(méi)有問(wèn)題,如果是整數(shù)的話,那么就使用(()) let expr就好了。

2、使用awk實(shí)現(xiàn)計(jì)算

利用awk進(jìn)行計(jì)算的效果很好,尤其是處理小數(shù),很精確如下:


剖析:第一行 echo 7.1 3.23 | 讓awk處理 '{print 打印 $1 為7.1 - $2為3.23}'得出3.87

第二行:echo 4 5 | 讓awk進(jìn)行處理 '{print  ($1為4那么在加4等于8)最后*$2 也就是乘5} ' 得出40

$[]運(yùn)算

[root@shell-yankerp ~]# a=5 
[root@shell-yankerp ~]# a=$[a+10] 
[root@shell-yankerp ~]# echo $a 
15 
[root@shell-yankerp ~]# echo $[2*3] 
6 
[root@shell-yankerp ~]# echo $[2/3] 
0 
[root@shell-yankerp ~]#  

3、基于Shell變量輸入read命令的運(yùn)算

read命令

Shell變量除了可以直接賦值或者腳本傳參外,還可以使用read命令從標(biāo)準(zhǔn)輸入中獲取,read命令為bash內(nèi)置的,命令。

用法如下:

-p 設(shè)置提示信息

-t 設(shè)置輸入的等待時(shí)間 如下:


剖析:上圖使用了read命令 -t是輸入等到時(shí)間為10秒,那么-p就是提示的信息,在后面我們加了 o p 也就是說(shuō),當(dāng)用戶輸入內(nèi)容時(shí) 他會(huì)把內(nèi)容賦值給變量 o p;

如下:


例2:

[root@shell-yankerp ~]# read -t 10 -p "請(qǐng)您輸入內(nèi)容:" o p 
請(qǐng)您輸入內(nèi)容:zhangsan lisi 
[root@shell-yankerp ~]# echo $o 
zhangsan 
[root@shell-yankerp ~]# echo $p 
lisi 
[root@shell-yankerp ~]#  

這大概就是read命令的基本用法了,但是我在看書(shū)的時(shí)間,發(fā)現(xiàn)這一章有很多的if語(yǔ)句和for循環(huán)實(shí)例,已經(jīng)超出了一些讀者的水平,經(jīng)過(guò)我的一些想法,結(jié)合之前的特殊變量加數(shù)值計(jì)算總結(jié)出大致的腳本內(nèi)容如下:

#!/bin/bash 
read -t 10 -p "請(qǐng)輸入任意兩個(gè)數(shù)值:" a b 
 
expr $a + 1 &>/dev/null 
if [ "$?" -ne "0" ] 
 then 
  echo /bin/bash..$0 "請(qǐng)輸入兩個(gè)數(shù)字" 
  exit 1 
fi 
[ ${#a} -le 0 ] && { 
 echo "不能為空?。?!" 
 exit 1 
} 
[ ${#b} -le 0 ] && { 
 echo "不能為空?。。? 
 exit 1 
} 
 
echo "a+b=$((a+b))" 
echo "a-b=$((a-b))" 
echo "a/b=$((a/b))" 
echo "a*b=$((a*b))" 
echo "a**b=$((a**b))" 

剖析:

read -t 10 -p "請(qǐng)輸入任意兩個(gè)數(shù)值:" a b 等待用戶輸入內(nèi)容,等待時(shí)間為10秒,后面的a b是變量,那么當(dāng)用戶輸入了兩個(gè)數(shù)值比如說(shuō) 1 2 那么1就賦值給了a 2就賦值給了b

expr $a + 1 &>/dev/null 這個(gè)其實(shí)前面的文章說(shuō)過(guò)了 使用expr來(lái)判斷用戶輸入的是數(shù)值還是字符串

if [ "$?" -ne "0" ]   如果以上命令輸入的內(nèi)容不等于0 也就是輸入的不是數(shù)值
  then         那么
    echo /bin/bash..$0 "請(qǐng)輸入兩個(gè)數(shù)字"    #輸出一條請(qǐng)輸入數(shù)字并打印當(dāng)前腳本名稱
    exit 1                退出腳本
fi

[ ${#a} -le 0 ] && {       這里使用了判斷,我們已經(jīng)知道a是一個(gè)變量了 如果a長(zhǎng)度小于0判斷用戶是否輸入的是空格
  echo "不能為空?。?!"   如果輸入的是空格那么就輸出一條 不能為空
  exit 1    #退出腳本
}

以此類推下面的就是#b了  $#的意思之前也說(shuō)過(guò)了 判斷用戶的傳參個(gè)數(shù),最后如果以上的條件全部成立,那么開(kāi)始計(jì)算。

此腳本用到了:特殊變量,read命令,expr命令,$#特殊變量,$0特殊變量,if語(yǔ)句,(())數(shù)值計(jì)算符;

感覺(jué)整體上用到前面的內(nèi)容還是比較多的運(yùn)行如下:

聲明:以上文章是<<跟著老男孩學(xué)Linux運(yùn)維Shell編程實(shí)戰(zhàn)>>第五章最后一部分看完的總結(jié);

好了 本次就到這里,希望讀者快快吸收~~~ 

后續(xù)不斷更新 謝謝大家

Shell編程之變量數(shù)值計(jì)算(上):http://www.dbjr.com.cn/article/134292.htm

希望本文所述對(duì)你有所幫助Shell編程之變量數(shù)值計(jì)算(二)內(nèi)容就給大家介紹到這里了。希望大家繼續(xù)關(guān)注我們的網(wǎng)站!想要學(xué)習(xí)Shell編程可以繼續(xù)關(guān)注本站。

相關(guān)文章

  • shell腳本中set?-e選項(xiàng)作用范圍小結(jié)

    shell腳本中set?-e選項(xiàng)作用范圍小結(jié)

    本文主要介紹了shell腳本中set?-e選項(xiàng)作用范圍小結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2023-06-06
  • hive-shell批量命令執(zhí)行腳本的實(shí)現(xiàn)方法

    hive-shell批量命令執(zhí)行腳本的實(shí)現(xiàn)方法

    今天小編就為大家分享一篇hive-shell批量命令執(zhí)行腳本的實(shí)現(xiàn)方法,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過(guò)來(lái)看看吧
    2018-06-06
  • 使用Shell腳本如何啟動(dòng)/停止Java的jar程序

    使用Shell腳本如何啟動(dòng)/停止Java的jar程序

    這篇文章主要介紹了使用Shell腳本如何啟動(dòng)/停止Java的jar程序,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧
    2020-12-12
  • Linux各項(xiàng)目環(huán)境部署記錄(換服務(wù)器部署腳本整理)

    Linux各項(xiàng)目環(huán)境部署記錄(換服務(wù)器部署腳本整理)

    每次換便宜的服務(wù)器都要導(dǎo)致環(huán)境重新部署一遍,十分麻煩,于是把每次部署的腳本整理了一下,方便在服務(wù)器上快速進(jìn)行部署,基于?CentOS
    2023-05-05
  • 自動(dòng)重啟服務(wù)的shell腳本代碼

    自動(dòng)重啟服務(wù)的shell腳本代碼

    公司tomcat服務(wù)器有個(gè)過(guò)一段時(shí)間自動(dòng)會(huì)掛的bug一直沒(méi)能解決,掛的時(shí)候還要手動(dòng)重啟tomcat,于是決定寫(xiě)個(gè)腳本讓它定時(shí)檢測(cè)故障自動(dòng)重啟吧
    2013-06-06
  • Linux nohup 命令用法詳解

    Linux nohup 命令用法詳解

    nohup命令是Linux/Unix系統(tǒng)中非常有用的命令之一,它允許您在后臺(tái)運(yùn)行命令或腳本,并且在退出終端會(huì)話后仍然保持運(yùn)行,這篇文章主要介紹了Linux nohup 命令詳解,需要的朋友可以參考下
    2023-08-08
  • linux中shell腳本實(shí)現(xiàn)下載完關(guān)機(jī)

    linux中shell腳本實(shí)現(xiàn)下載完關(guān)機(jī)

    本文給大家分享的是個(gè)人在實(shí)際應(yīng)用中制作的一個(gè)小程序,十分的實(shí)用,推薦給大家,有需要的小伙伴可以參考下。
    2015-03-03
  • Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài)

    Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài)

    這篇文章主要介紹了Shell腳本實(shí)現(xiàn)監(jiān)視指定進(jìn)程的運(yùn)行狀態(tài),本文直接給出腳本代碼,需要的朋友可以參考下
    2015-07-07
  • Shell腳本創(chuàng)建指定大小文件的測(cè)試數(shù)據(jù)

    Shell腳本創(chuàng)建指定大小文件的測(cè)試數(shù)據(jù)

    這篇文章主要介紹了Shell腳本創(chuàng)建指定大小文件的測(cè)試數(shù)據(jù),本文同時(shí)給出使用DD命令和Shell腳本解決這個(gè)需求,給出的腳本功能更加強(qiáng)大,需要的朋友可以參考下
    2015-03-03
  • Shell中去除字符串前后空格的方法

    Shell中去除字符串前后空格的方法

    今天小編就為大家分享一篇關(guān)于Shell中去除字符串前后空格的方法,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧
    2019-03-03

最新評(píng)論