Lshell指令碼程式設計高階之陣列,字串切片

2021-09-14 01:18:41 字數 884 閱讀 3840

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...