bash 的陣列支援稀疏格式(索引不連續)
宣告陣列:
declare -a array_name
declare -a array_name: 關聯陣列
注意:兩者不可相互轉換
編寫指令碼,定義乙個陣列,陣列中的元素是/var/log 目錄下所有以.log 結尾的檔案;要統計其下標為偶數的檔案中的行數之和
#!/bin/bash
declare -a files
files=(/var/log/*.log)
declare -i lines=0
for i in $(seq 0 $[$-1]); do
if [ $[$i%2] -eq 0 ];then
let lines+=$(wc -l $ | cut -d' ' -f1)
fiecho "lines: $lines."
$
:其中word 可以是指定的任意字元;
功能:自右而左,查詢var 變數所儲存的字串中,第一次出現的word, 刪除字串最後乙個字元向左至第一次出現word 字元之間的所有字元;
file="/var/log/messages"
$: /var/log
$
:同上,只不過刪除字串最右側的字元向左至最後一次出現word 字元之間的所有字元;
示例:
變數賦值
為指令碼程式使用配置檔案, 實現變數賦值
shell指令碼高階之陣列基礎
陣列和變數的區別 變數在記憶體中占用的空間是離散的,陣列在內粗中開闢一段連續的大記憶體空間,隨後陣列中的每個元素都放入陣列記憶體中。陣列元素使用index標識。bash裡有兩種陣列普通陣列和關聯陣列。普通陣列只能使用整數類形數值作為陣列索引,關聯陣列可以使用字串作為索引。關聯陣列的另外三種稱呼 字典...
shell指令碼程式設計高階(一)
可以巢狀 分支if 判斷條件 then 條件為真的分支 fiif 判斷條件 then 條件為真的分支 else 條件為假的分支 fiif 判斷條件1 then 條件1為真的分支 elif 判斷條件2 then 條件2為真的分支 elif 判斷條件3 then 條件3為真的分支 else 以上條件都為...
Shell指令碼 程式設計高階03
1 每隔 3 秒鐘到系統上獲取已經登入的使用者的資訊 如果發現使用者 hacker 登入,則將登入時間和主機記錄於日誌 var log login.log 中,並退出指令碼 bin bash while do echo date f t no information if who grep hack...