一、數組
(1)
bash支持一維數組(不支持多維數組),並且沒有限定數組的大小。類似與C語言,數組元素的下標由0開始編號。獲取數組中的元素要利用下標,下標可以是整數或算術表達式,其值應大於或等於0。
在Shell中,用括號來表示數組,數組元素用“空格”符號分割開。定義數組的一般形式爲:
array_name=(value1 ... valuen)
比如 arr=(1 2 3 4 5)
或者
arr=(
1
2
3
)//括號必須這樣 不然會出錯
或者
arr[0]=1
arr[2]=3
可以不使用連續的下標,而且下標的範圍沒有限制。
echo "arr[0] is ${arr[0]}" 輸出數組元素
或者使用@或*輸出數組全部元素
比如 echo "arr is ${arr[@]}"
獲取數組長度和獲取字符串長度是一樣的方法
echo "the len of arr is ${#arr[@或者*]}"
(2)在bash裏 echo "hello\n" 會輸出hello\n
如果想輸出換行效果 則需要echo -e "hello\n"
這裏 -e 表示對轉義字符進行替換
(3)echo `date` 會輸出當前時間
二、
printf
shell的printf和C語言的不一樣在於
printf 不像 echo 那樣會自動換行,必須顯式添加換行符(\n)。
printf 命令的語法:
printf format-string [arguments...]format-string 爲格式控制字符串,arguments 爲參數列表。
printf()在C語言入門教程中已經講到,功能和用法與 printf 命令類似
這裏僅說明與C語言printf()函數的不同:
- printf 命令不用加括號
- format-string 可以沒有引號,但最好加上,單引號雙引號均可。
- 參數多於格式控制符(%)時,format-string 可以重用,可以將所有參數都轉換。
- arguments 使用空格分隔,不用逗號。
x=1
var="hello"
printf "%s %d\n" $var $x
輸出 hello 1