linux 普通 原

1、echo是用於終端打印的基本命令。

在默認情況下,echo在每


次調用後會添加一個換行符。

每種方法的副作用如下所述。
 使用不帶引號的echo時,沒法在所要顯示的文本中使用分號(;),因爲分號在Bash shell
中被用作命令定界符。
 以echo hello;hello爲例,echo hello被視爲一個命令,第二個hello則被視爲另一
個命令。
 變量替換在單引號中無效


2、變量是任何一種編程語言都必不可少的組成部分,用於存放各類數據。腳本語言通常不需要在使用變量之前聲明其類型。只需要直接賦值就可以了。在Bash中,每一個變量的值都是字符串。無論你給變量賦值時有沒有使用引號,值都會以字符串的形式存儲。有一些特殊的變量會被shell環境和操作系統環境用來存儲一些特別的值,這類變量就被稱爲環境變量。

可以使用env命令查看所有與終端相關的環境變量。

我們可以在printf或echo命令的雙引號中引用變量值

#!/bin/bash
#文件名:variables.sh
fruit=apple
count=5
echo "We have $count ${fruit}(s)"

環境變量是未在當前進程中定義,而從父進程中繼承而來的變量。


export命令用來設置環境變量。至此之後,從當前shell腳本執行的任何應用程序都會繼承
這個變量。我們可以按照自己的需要,在執行的應用程序或者shell腳本中導出特定的變量。在默認情況下,有很多標準環境變量可供shell使用。

可以用下面的方法獲得變量值的長度:
length=${#var}


3、數組是shell腳本非常重要的組成部分,它藉助索引將多個獨立的數據存儲爲一個集合。普通數組只能使用整數作爲數組索引。Bash也支持關聯數組,它可以使用字符串作爲數組索引。在很多情況下,採用字符串式索引更容易理解,這時候關聯數組就派上用場了。Bash從4.0版本之後纔開始支持關聯數組。

(1) 定義數組的方法有很多種。可以在單行中使用一列值來定義一個數組:
array_var=(1 2 3 4 5 6)#這些值將會存儲在以0爲起始索引的連續位置上
另外,還可以將數組定義成一組“索引-值”:
array_var[0]="test1"
array_var[1]="test2"
array_var[2]="test3"
array_var[3]="test4"
array_var[4]="test5"
array_var[5]="test6"
(2) 打印出特定索引的數組元素內容:
echo ${array_var[0]}
test1
index=5
echo ${array_var[$index]}
test6
(3) 以清單形式打印出數組中的所有值:
$ echo ${array_var[*]}
test1 test2 test3 test4 test5 test6
也可以這樣使用:
$ echo ${array_var[@]}
test1 test2 test3 test4 test5 test6
(4) 打印數組長度(即數組中元素的個數):
$ echo ${#array_var[*]}
6

1. 定義關聯數組
在關聯數組中,我們可以用任意的文本作爲數組索引。首先,需要使用聲明語句將一個變量
名聲明爲關聯數組。像下面這樣:
1.8 使用別名 

$ declare -A ass_array
聲明之後,可以用兩種方法將元素添加到關聯數組中。
 利用內嵌“索引-值”列表的方法,提供一個“索引-值”列表:
$ ass_array=([index1]=val1 [index2]=val2)
 使用獨立的“索引-值”進行賦值:
$ ass_array[index1]=val1
$ ass_array'index2]=val2
舉個例子,試想如何用關聯數組爲水果制定價格:
$ declare -A fruits_value
$ fruits_value=([apple]='100dollars' [orange]='150 dollars')
用下面的方法顯示數組內容:
$ echo "Apple costs ${fruits_value[apple]}"
Apple costs 100 dollars

2. 列出數組索引
每一個數組元素都有一個索引用於查找。普通數組和關聯數組具有不同的索引類型。我們可
以用下面的方法獲取數組的索引列表:
$ echo ${!array_var[*]}
也可以使用:
$ echo ${!array_var[@]
以先前提到的fruits_value數組爲例,運行如下命令:
$ echo ${!fruits_value[*]}
orange apple
對於普通數組,這個方法同樣可行。


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章