linux中bash的變數值是以字串的形式儲存的,所以如果想當作數字使用的話需要進行轉換.(前面已經用到了一些,但沒有系統的總結)
此外,shell中所有的算術運算都被當作整數運算,所以在有浮點數參與時要特別處理
計算算式的值,使用shell變數的值的時候不用$
#! /bin/bash
x=5 y=6
let t=x*y
echo
$t#執行結果為11
用於計算expression的值
expr args
將它的引數當作表示式求值, 這裡注意引數間的空格
例如
a =
$(expr $x+1)或a=
`expr $x+1`
args可以是數值計算也可以是邏輯判斷
#! /bin/bash
a=5b=6
expr
$a \>
$b#判斷式為真則輸1, 否則輸出0
#一
array_name[num]
=value
array[1]
="hello"
array[2]
="giao"
#二array=
(value1 value2 [num]
=value)
array=
(hello giao [4]
=world)
#三declare -a arr=
(1 2 3 4)
#輸出所有的非空元素
$#輸出已賦值的元素個數(空也算)$#或
$
#key對應的元素長度
$
具體如下圖
#宣告arr陣列
unset arr[0]
#刪除arr的第零個元素
unset arr#刪除陣列arr
因為要複製全部元素,參照上面就知道需要用到arr[*]
和arr[@]
了,在前面的演示中,知道他們都可以表示全部元素.而它們的區別也類似於$*與$@加不加雙引號的區別了.
首先b=$
就是表示將a複製給b.
同樣的b都會得到a的全部元素, 而如果加上雙引號變成b=$
的話, 無論a中有多少元素, 都將被看做乙個元素複製給b, 也就是說b只有乙個元素.
func_name(pare)
在函式體內宣告的區域性變數需要用local
修飾, 表明那是區域性變數, 區域性變數在函式呼叫結束後銷毀.
shell中的shift命令: 將指令碼傳入的引數左移一位, 即: 原來的讓第n+1位引數變成第n位
shell程式設計筆記(四)
case語句 語法 case 字串 in 值1 值2 操作 值3 值4 操作 值5 值6 操作 操作 esac case的作用就是當字串與某個值相同是就執行那個值後面的操作。如果同乙個操作對於多個值,則使用 將各個值分開。在case的每乙個操作的最後面都有兩個 分號是必須的。例 case user ...
實驗四 shell程式設計 shell控制語句
實驗四 shell 程式設計 shell 控制語句 實驗目的 進一步鞏固 shell 程式語言基本語法,加深對所學知識理解。實驗內容 要求學生掌握以下內容 1 條件表示式 2 判斷和分支語句 3 迴圈語句 4 函式 實驗內容 1 條件表示式 test 10 gt 5 算數表示式 10 5 echo ...
Linux 實驗四 Shell程式設計
熟練掌握重定向 管道 命令連線符和使用awk文字分析器提取文字內容的方法。掌握shell指令碼的編寫和執行方法。ubantu或centos 重定向操作符的使用 管道命令連線符 awk文字分析器 shell指令碼程式設計 輸入重定向 輸出重定向 錯誤重定向管道的功能為連線命令,使前乙個命令的輸出,作為...