results=
results['startlogdate']="Start time"
results['endlogdate']="$finish_time"
echo "${results[*]}"
我想初始化數組,並將值添加到數組並回顯數組。上面的代碼是我的嘗試。如何在shell腳本中使用單維數組並顯示數組?
results=
results['startlogdate']="Start time"
results['endlogdate']="$finish_time"
echo "${results[*]}"
我想初始化數組,並將值添加到數組並回顯數組。上面的代碼是我的嘗試。如何在shell腳本中使用單維數組並顯示數組?
finish_time =`date`
結果[0] = 「開始時間」
結果[1] = 「$ finish_time」
回聲$ {結果[@]}
輸出:開始時間週三1月8日12點25分14秒北京時間2014
元素個數:回聲$ {#結果[@]}
bash中的數組是零索引,因此$ {results [0]}將爲「開始時間」,$ {results [1]}將爲「Wed Jan 8 12:25:14 IST 2014」
我收到以下錯誤:結果[0] =開始時間:未找到 test_extract_tom_html.sh:74:results [1] =日期:未找到 test_extract_tom_html.sh:76:錯誤替換 – user3165241
這並沒有解決有關問題聯想索引數組。 – aks
If想在bash中使用數組。你將能夠以兩種方式完成。
在bash中聲明一個數組。
declare -a Unix=('Debian' 'Red hat' 'Red hat' 'Suse' 'Fedora');
echo ${Unix[0]} # Prints the first element
echo ${Unix[*]} # prints all the elements of an array
直接使用(即)沒有申報。 Unix[0]='Debian';Unix[1]='Red hat'
我得到同樣的錯誤,有一件事它不是bash腳本,正常的shell腳本 – user3165241
這是一個數字索引數組的例子。這個問題被問及關聯索引數組。 – aks
在bash腳本,有兩種數組:數字索引和關聯地索引。
根據您的shell的版本,可能不支持關聯索引數組。
相關的在你的問題的例子中,正確的語法來獲得值的數組,每個作爲一個單獨的一句話,就是:
"${results[@]}"
要獲得鍵的關聯數組,請執行以下操作:
"${!results[@]"
下面的腳本演示了使用關聯數組。有關更多詳細信息,請參見bash
聯機幫助頁中的Arrays
部分。
#!/bin/bash
# tst.sh
declare -A aa
aa[foo]=bar
aa[fee]=baz
aa[fie]=tar
for key in "${!aa[@]}" ; do
printf "key: '%s' val: '%s'\n" $key "${aa[$key]}"
done
echo "${aa[@]}"
exit
這裏是輸出:
$ bash tst.sh
key: 'foo' val: 'bar'
key: 'fee' val: 'baz'
key: 'fie' val: 'tar'
tar bar baz
最後,我做了我提供的陣列功能(又名「名單」),我已經使用了很多年,使管理該庫數組中的數據容易。
退房https://github.com/aks/bash-lib/blob/master/list-utils.sh
即使你選擇不使用圖書館,你可以通過閱讀代碼中有學到很多關於陣列。
祝你好運。
我的腳本不在bash中,sh shell腳本。聲明未找到錯誤即將發生 – user3165241
在某些Linux/Unix系統上,'sh'與'bash'相同。但是,如果不是,則不支持關聯數組。在這種情況下,只需使用數字索引的數組。如果您希望使用關鍵字,請將數字值分配給關鍵字,並且仍可以用作索引。 – aks
即使在缺省情況下使用'sh'的系統中,腳本中的腳本中仍可以使用'bash',在腳本的第一行使用'#!/ bin/bash'語法。如果你的系統沒有'/ bin/bash',那麼你可以在'/ usr/local/bin/bash'中下載並安裝bash,並在第一個'#!/ usr/local/bin/bash'中調用它腳本的行。 – aks
目前尚不清楚你想要做什麼。你希望'echo「$ {results [*]}」'會打印什麼?另外 - 這是Bash?哪個版本? – ruakh
我是新來的shell腳本,我想添加一個元素到數組中,並根據下面的註釋回顯數組 – user3165241
,如果你不能使用'bash'你能使用'ksh'嗎?下面的大多數答案都適用於舊版本的'ksh'。將腳本的第一行改爲'#!/ bin/ksh'(或正確的路徑到'ksh')。祝你好運。 – shellter