Shell變量與算術運算


區分兩個 Shell

Shell 語言與 Shell 解釋器

Shell 語言

寫 Shell 腳本使用的是 Shell 語言,Shell 既是一種命令語言,又是一種程序設計語言。

  • 作為命令語言,它交互式地解釋和執行用戶輸入的命令
  • 作為程序設計語言,它定義了各種變量和參數,並提供了許多在高級語言中才具有的控制

Shell 腳本解釋器

解析Shell 使用的是 Shell 腳本解釋器,一個用 C 語言編寫的程序,它是用戶使用 Unix/Linux 的橋梁,接口程序。常見的腳本解釋器有 bash、sh、csh、ksh......

Shell 的變量

學習 Shell 變量的時候,對變量的定義和使用有一絲迷惑,看下面這個程序。

運行結果

1+2
xiaoming

看到這個運行結果,我感到出乎意料,首先 c 經驗不等於3,d 表示字符串不加引號竟然不報錯!!!!!!不知到 Linux 課上有沒有講過,可惜我沒有那一門課,百度......

Shell 的所有變量默認都是字符型。

所以 a、b、c 直接被當做字符串啦,那變量 a、b 如何進行算術運算呢? 查看 菜鳥教程

使用 expr 命令,例如 c=`expr $a+$b` 可以得到正常的結果。同時還有其他方式可以進行求值。 具體參考  Linux Shell腳本攻略:shell中各種括號()、(())、[]、[[]]、{}的作用

使用 $[] 方式  c=$[$a+$b],類比 [] 不加前面的$,表示進行(算數比較、字符串 ==|!= 的比較、使用數組索引)。

使用 $(())方式 c=(($a+$b)) 只要括號中的運算符、表達式符合C語言運算規則,都可用在$((exp))中,甚至是三目運算符。

思考:當兩個字符串使用 算數運算的時候會得到什么結果呢

 

參考鏈接

Shell中各種括號()、(())、[]、[[]]、{}的作用和區別

Shell變量和數據類型

[Bash Shell] Shell學習筆記


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM