最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

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

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

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

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

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

1、BC命令的用法

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

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


是不是感覺很方便的樣子,接下來將BC用在命令行下面,實現(xià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配置變量運算

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

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

2、使用awk實現(xiàn)計算

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


剖析:第一行 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內(nèi)置的,命令。

用法如下:

-p 設置提示信息

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


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

如下:


例2:

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

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

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

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

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

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

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

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

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

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

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

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

Shell編程之變量數(shù)值計算(上):http://m.fzitv.net/article/134292.htm

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

相關文章

  • Shell最多支持多少個參數(shù)?

    Shell最多支持多少個參數(shù)?

    這篇文章主要介紹了Shell最多支持多少個參數(shù)?本文是對Shell最多可以輸入多少個參數(shù)的一篇測試文章,需要的朋友可以參考下
    2014-10-10
  • shell腳本的流程控制語句的實現(xiàn)

    shell腳本的流程控制語句的實現(xiàn)

    本文主要介紹了shell腳本的流程控制語句的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2022-08-08
  • Linux文件名修改方法大全

    Linux文件名修改方法大全

    在Linux系統(tǒng)中,文件名修改是一個常見且重要的操作,文件名修改可以更好地管理文件和文件夾,使其更具可讀性和有序性,本文將介紹三種在Linux系統(tǒng)下常用的文件名修改方法,需要的朋友可以參考下
    2025-03-03
  • linux命令之find命令簡單概述

    linux命令之find命令簡單概述

    這篇文章主要為大家詳細介紹了linux命令之find命令的簡單使用,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-02-02
  • 詳談Linux寫時拷貝技術(copy-on-write)必看篇

    詳談Linux寫時拷貝技術(copy-on-write)必看篇

    下面小編就為大家?guī)硪黄斦凩inux寫時拷貝技術(copy-on-write)必看篇。小編覺得挺不錯的,現(xiàn)在就分享給大家,也給大家做個參考。一起跟隨小編過來看看吧
    2017-07-07
  • 對用戶輸入的判斷的shell實現(xiàn)代碼

    對用戶輸入的判斷的shell實現(xiàn)代碼

    今天的案例是將 對用戶輸入的判斷的shell腳本,需要的朋友可以參考下
    2016-08-08
  • Linux命令之ps命令使用詳解

    Linux命令之ps命令使用詳解

    這篇文章主要給大家介紹Linux命令之ps命令使用方法,文中有詳細的代碼示例,對我們學習Linux命令有一定的幫助,感興趣的同學可以參考閱讀下
    2023-06-06
  • Shell中刪除某些文件外所有文件的3個方法

    Shell中刪除某些文件外所有文件的3個方法

    這篇文章主要介紹了Shell中刪除某些文件外所有文件的3個方法,即在刪除文件時保留一些想要的,其它的則刪除,需要的朋友可以參考下
    2014-10-10
  • Linux禁止普通用戶su至root的解決方法

    Linux禁止普通用戶su至root的解決方法

    很多朋友不清楚linux如何禁止普通用戶su到root,這里需要修改兩個配置文件,具體詳細配置大家通過本文了解下吧
    2017-08-08
  • 詳解git無法pull倉庫refusing to merge unrelated histories

    詳解git無法pull倉庫refusing to merge unrelated histories

    這篇文章主要介紹了詳解git無法pull倉庫refusing to merge unrelated histories的相關資料,需要的朋友可以參考下
    2017-06-06

最新評論

八宿县| 永昌县| 金阳县| 会昌县| 彰化县| 马关县| 女性| 翼城县| 张家口市| 徐闻县| 深泽县| 江西省| 漯河市| 淳安县| 汤阴县| 凤台县| 西乌珠穆沁旗| 磴口县| 武邑县| 江达县| 清流县| 霍林郭勒市| 辉南县| 卢龙县| 无棣县| 襄垣县| 思茅市| 庆安县| 安新县| 乐安县| 鱼台县| 大同市| 苗栗县| 清镇市| 新龙县| 永吉县| 灵石县| 东至县| 延川县| 武义县| 海兴县|