Linux_Shell腳本攻略學習筆記(2)1.6-1.15

1.6
1)數組的類別:
a.普通數組,索引是數字,從0開始,但是特別的是,索引可以不連續
b.關聯數組,索引是字符串
shell 中的數組更像是key-value的感覺,就算是普通數組,也沒有必須連續。用起來還是很方便。
2)定義數組的方法:
a.普通數組:

  • arr=(1 3 5)
  • arr[1]=3 arr[3]=5

b.關聯數組:
第一步:先聲明 declare -A arr
第二步:

  • arr=([first]=‘1’ [last]=‘10’)
  • arr[first]=1 arr[second]=hello

3)數組的特殊用法
a.訪問某一個元素:echo ${arr[1]}
b.遍歷數組,全部打印: echo ${arr[*]} echo ${arr[@]}
c.打印數組的長度:echo ${#arr[*]}
d.列出數組的索引值: echo ${!arr[*]}

1.7
1)別名的定義方法:(刪除使用unalias)
alias install=‘sudo apt-get install’
2)別名的命令作用只在當前終端有效,爲了長期有效,可以將其寫入 ~/.bashrc中。
echo ‘alias install=“sudo apt-get install”’ >> ~./bashrc
3)爲了安全考慮,忽略別名,強制使用原命令,使用轉義符加命令:
\rm

1.8
1)tput工具
tput cols
tput lines
tput longname
tput cup 100 100
tput setb no(no在0~7之間)
tput serf no
tput bold
tput ed
2)stty工具
stty -echo 禁止輸出發送到終端。
… stty echo

1.9
1)date的常見使用方法
a. date
Thu May 20 23:09:04 IST 2010
b. date +%s 打印紀元時
1290047248
c. date -d “Jan 20 2001” +%A 獲取指定日期星期幾
Saturday
2)延時命令
sleep 100 延時100s

1.10
調試腳本,將#!/bin/bash —> #!/bin/bash -xv 即可使用調試功能。

1.11
1)定義函數
a.
function fname()
{
statements;
}

b.
fname()
{
statements;
}

2)執行函數
a.fname;
b.帶參數的調用函數
fname arg1 arg2;

3)函數中使用入參
echo $1; #訪問第一個參數
echo “$@” 一次性打印所有參數

4)導出函數
export -f fname

5)讀取命令或者函數的返回值
echo $?

1.12
1)管道 ” | “,前者的輸出作爲後者的輸入。
ls | cat -n > out.txt
2)讀取命令的輸出
a.子shell ouput=$(ls | cat -n)
如果需要保留換行和空格,需要使用雙引號。 output="$(ls | cat -n)"
b.反引用 output=`ls | cat -n`
3)子shell可以作爲一個獨立的進程,不干擾主進程
pwd;
(cd /bin; ls;)
pwd;

1.13
1)讀取標準輸入命令: read
2)可以指定讀取的字符個數,而不需要使用額外按回車
read -n 2 var
3)其他用法
read -s var #不回顯,常用於密碼
read -p “Enter input:” var #顯示提示信息
read -t timeout var #設定限時
read -d “:” var #設定定界符,以該符號結束輸入。

1.14
1)IFS默認是空格、製表位、換行符
修改IFS,可以通過迭代,自動分割各個元素
data=“name,sex,rollno locatioin”
IFS="," #以逗號作爲定界符
for item in $data
do
echo item: $item
done

2)for 循環
for item in list #list可以是string或者是序列,序列的方法:{1…50} {a…z} {A…H}
do
commands
done

3)while循環
while condition
do
commands
done

4)until循環
直到爲真,才停止循環
until condition
do
commands
done

1.15
1)條件語句
if condition
then
commands
fi
或者
if condition
then
commands
elif condition
then
commands
else
commands
fi
2)算數比較符號
-eq 等於
-ne 不等於
-gt 大於
-lt 小於
-ge 大於等於
-le 小於等於

3)文件測試
對文件/目錄是否可讀、可寫、是否存在等做判斷
4)字符串比較
[[ $str1 == $str2]]
特殊的:
空字符串返回真 [[ -z $str1 ]]
非空返回真: [[ -n $str2 ]]

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