C語言中文網
首頁 > 編程筆記 > Linux筆記 閱讀:1,900

Shell declare -i:將變量聲明為整數

在《Shell declare命令》一節中,我們已經講解了 declare 命令的各種選項,為了讓 Shell 進行整數運算,本節我們重點講解-i選項。

默認情況下,Shell 中每一個變量的值都是字符串(不了解的讀者請猛擊《Shell變量》),即使你給變量賦值一個數字,它其實也是字符串,所以在進行數學計算時會出錯。

使用 declare 命令的-i選項可以將一個變量聲明為整數類型,這樣在進行數學計算時就不會作為字符串處理了,請看下面的例子:
#!/bin/bash

declare -i m n ret
m=10
n=30

ret=$m+$n
echo $ret

ret=$n/$m
echo $ret
運行結果:
40
3

除了將 m、n 定義為整數,還必須將 ret 定義為整數,如果不這樣做,在執行ret=$m+$nret=$n/$m時,Shell 依然會將 m、n 視為字符串。

此外,你也不能寫類似echo $m+$n這樣的語句,這種情況下 m、n 也會被視為字符串。

總之,除了將參與運算的變量定義為整數,還得將承載結果的變量定義為整數,而且只能用整數類型的變量來承載運算結果,不能直接使用 echo 輸出。

和 (())、let、$[] 不同,declare -i的功能非常有限,僅支持最基本的數學運算(加減乘除和取余),不支持邏輯運算(比較運算、與運算、或運算、非運算),所以在實際開發中很少使用。

所有教程

優秀文章

精美而實用的網站,提供C語言C++STLLinuxShellJavaGo語言等教程,以及socketGCCviSwing設計模式JSP等專題。

Copyright ?2011-2018 biancheng.net, 陜ICP備15000209號

底部Logo