亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 開發 > Linux Shell > 正文

詳解Shell編程之變量數值計算(二)

2020-07-27 18:49:14
字體:
來源:轉載
供稿:網友

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

#!/bin/bash a=$1 b=$2 expr $1 + 1 &>/dev/null if [ "$?" -ne "0" ]  then   echo "請輸入數字"   exit 1 fi  if [ "$#" -ne "2" ]  then   echo "請輸入兩個數字"     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))" 

這個腳本中包含了,特殊變量,數值運算命令expr判斷語法。一些簡單的if語句,特殊變量$#的用法。最后實現了運算~ 大家可以參考我的這篇文章:http://www.49028c.com/article/134292.htm

1、BC命令的用法

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

在我們前面說的數值運算,我們都是以整數的形式來的,但是bc這個就不一樣了 它可以處理小數~~~如下:


是不是感覺很方便的樣子,接下來將BC用在命令行下面,實現運算

[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配置變量運算

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

根據bc具有的特殊性質來來看,如果是小數,那么它處理是沒有問題,如果是整數的話,那么就使用(()) let expr就好了。

2、使用awk實現計算

利用awk進行計算的效果很好,尤其是處理小數,很精確如下:


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

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

$[]運算

[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命令的運算

read命令

Shell變量除了可以直接賦值或者腳本傳參外,還可以使用read命令從標準輸入中獲取,read命令為bash內置的,命令。

用法如下:

-p 設置提示信息

-t 設置輸入的等待時間 如下:


剖析:上圖使用了read命令 -t是輸入等到時間為10秒,那么-p就是提示的信息,在后面我們加了 o p 也就是說,當用戶輸入內容時 他會把內容賦值給變量 o p;

如下:


例2:

[root@shell-yankerp ~]# read -t 10 -p "請您輸入內容:" o p 請您輸入內容:zhangsan lisi [root@shell-yankerp ~]# echo $o zhangsan [root@shell-yankerp ~]# echo $p lisi [root@shell-yankerp ~]#  

這大概就是read命令的基本用法了,但是我在看書的時間,發現這一章有很多的if語句和for循環實例,已經超出了一些讀者的水平,經過我的一些想法,結合之前的特殊變量加數值計算總結出大致的腳本內容如下:

#!/bin/bash read -t 10 -p "請輸入任意兩個數值:" a b  expr $a + 1 &>/dev/null if [ "$?" -ne "0" ]  then   echo /bin/bash..$0 "請輸入兩個數字"   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 "請輸入任意兩個數值:" a b 等待用戶輸入內容,等待時間為10秒,后面的a b是變量,那么當用戶輸入了兩個數值比如說 1 2 那么1就賦值給了a 2就賦值給了b

expr $a + 1 &>/dev/null 這個其實前面的文章說過了 使用expr來判斷用戶輸入的是數值還是字符串

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

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

以此類推下面的就是#b了  $#的意思之前也說過了 判斷用戶的傳參個數,最后如果以上的條件全部成立,那么開始計算。

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

感覺整體上用到前面的內容還是比較多的運行如下:

聲明:以上文章是<<跟著老男孩學Linux運維Shell編程實戰>>第五章最后一部分看完的總結;

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

后續不斷更新 謝謝大家

Shell編程之變量數值計算(上):http://www.49028c.com/article/134292.htm

希望本文所述對你有所幫助Shell編程之變量數值計算(二)內容就給大家介紹到這里了。希望大家繼續關注我們的網站!想要學習Shell編程可以繼續關注本站。

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
欧美最顶级的aⅴ艳星| 91高潮精品免费porn| 亚洲变态欧美另类捆绑| 亚洲精品www久久久| 国产成+人+综合+亚洲欧洲| 国产精品日韩在线观看| 亚洲性视频网址| 久久人人爽亚洲精品天堂| 欧美成人中文字幕在线| 午夜精品蜜臀一区二区三区免费| 成人免费在线视频网站| 一本大道香蕉久在线播放29| 欧美日韩中国免费专区在线看| 国产亚洲精品久久久优势| 最新国产成人av网站网址麻豆| 欧美在线视频免费观看| 丰满岳妇乱一区二区三区| 中文字幕无线精品亚洲乱码一区| 亚洲国产成人精品一区二区| 国产精品国产亚洲伊人久久| 欧美国产在线视频| 色婷婷久久一区二区| 欧美精品18videosex性欧美| 亚洲自拍欧美另类| 亚洲欧美日韩综合| 国产日韩精品视频| 亚洲四色影视在线观看| 久久99国产精品自在自在app| 日韩在线播放一区| 国产日韩换脸av一区在线观看| 欧美高清无遮挡| 亚洲性无码av在线| 青青在线视频一区二区三区| 中文字幕久热精品视频在线| 日韩欧美成人精品| 日韩av在线免费观看一区| 激情亚洲一区二区三区四区| 久久久精品在线| 色偷偷av亚洲男人的天堂| 久久999免费视频| 国内精品小视频在线观看| 亚洲午夜av电影| 国产精品亚洲欧美导航| 色噜噜国产精品视频一区二区| 97av在线视频| 亚洲在线观看视频网站| 日韩成人中文电影| 亚洲成人av资源网| 久久视频在线视频| 羞羞色国产精品| 热久久免费国产视频| 亚洲第一精品自拍| 狠狠躁夜夜躁人人爽天天天天97| 国产日韩在线播放| 神马久久久久久| 亚洲网站在线播放| 亚洲欧美国产精品专区久久| 日韩精品视频在线| 91九色国产在线| 在线播放国产一区二区三区| 91精品国产精品| 57pao国产成人免费| 国产精品视频地址| 精品呦交小u女在线| 亚洲精品短视频| 国产精品一区二区三区毛片淫片| 国产精品91久久久久久| 欧美高清性猛交| 日韩少妇与小伙激情| 少妇精69xxtheporn| 国产精品88a∨| 欧美日韩成人在线视频| 国产精品一二三在线| 国产日韩在线免费| 欧美色欧美亚洲高清在线视频| 亚洲va欧美va国产综合剧情| 国产这里只有精品| 国产欧美日韩中文字幕在线| 欧美富婆性猛交| 国产精品久久久久久久av大片| 在线播放日韩精品| 欧美日韩在线第一页| 在线中文字幕日韩| 555www成人网| 亚洲伊人成综合成人网| 欧美成年人视频网站| 欧美激情精品久久久久久久变态| 一本一本久久a久久精品牛牛影视| 国内外成人免费激情在线视频网站| 欧美视频免费在线| 97精品视频在线观看| 国产精品视频资源| 欧美一级片免费在线| 欧美精品videosex性欧美| 日韩色av导航| 久久伊人精品一区二区三区| 亚洲国产三级网| 久久精品亚洲国产| 91亚洲人电影| 韩国欧美亚洲国产| 亚洲第一精品福利| 欧美裸体xxxxx| 性色av一区二区三区红粉影视| 午夜精品福利视频| 欧美国产日韩一区二区| 国产午夜精品视频免费不卡69堂| 亚洲国模精品私拍| 亚洲缚视频在线观看| 亚洲国产高潮在线观看| 国产精品va在线播放| 亚洲一区亚洲二区亚洲三区| 最近2019中文字幕第三页视频| 日韩电影视频免费| 亚洲精品一二区| 美日韩在线视频| 午夜精品www| 韩曰欧美视频免费观看| 欧美福利视频网站| 欧美电影免费观看大全| 日韩视频一区在线| 在线国产精品视频| 欧美精品在线免费观看| 欧美激情啊啊啊| 久久久久日韩精品久久久男男| 亚州成人av在线| 性欧美办公室18xxxxhd| 欧美成人免费全部| 在线精品91av| 97香蕉久久超级碰碰高清版| 日韩久久精品成人| 国产精品久久久久久久久免费| 狠狠躁夜夜躁人人爽超碰91| 久久青草精品视频免费观看| 亚洲片av在线| 国产欧美精品一区二区三区-老狼| 亚洲精品福利免费在线观看| 91视频88av| 欧美性20hd另类| 精品电影在线观看| 亚洲最大av网| 欧美富婆性猛交| 亚洲精品美女在线| 亚洲国产成人久久综合一区| 欧美高清一级大片| 日韩成人在线视频网站| 久久精品成人欧美大片| 亚洲无限乱码一二三四麻| 5566日本婷婷色中文字幕97| 日韩在线欧美在线| 国产成人97精品免费看片| 国产精品麻豆va在线播放| 5566日本婷婷色中文字幕97| 庆余年2免费日韩剧观看大牛| 国产精品男人爽免费视频1| 在线观看精品自拍私拍| 精品香蕉在线观看视频一| 国产免费一区二区三区在线能观看| 国产精品无码专区在线观看| 国产精品扒开腿做爽爽爽男男| 欧美日韩午夜激情| 少妇高潮久久久久久潘金莲| 中文字幕精品国产| 亚洲一区二区三区毛片| 精品久久久久久久久国产字幕|