shell 總結

一、特殊變量

$0:當前腳本的文件名
$num:num爲從1開始的數字,$1是第一個參數,$2是第二個參數,${10}是第十個參數
$#:傳入腳本的參數的個數
$*:所有的位置參數(作爲單個字符串) 
$@:所有的位置參數(每個都作爲獨立的字符串)。
$?:當前shell進程中,上一個命令的返回值,如果上一個命令成功執行則$?的值爲0,否則爲其他非零值,常用做if語句條件
$$:當前shell進程的pid
$!:後臺運行的最後一個進程的pid
$-:顯示shell使用的當前選項
$_:之前命令的最後一個參數

二、數組循環示例

#!/bin/bash
net=($(ifconfig |grep  ether|awk '{print  $2}'))
for ((i=0;i<${#net[*]};i++))
do
    echo "${net[$i]}"
done
#!/bin/bash
list=(1 2 3)
for ((i=0;i<${#list[*]};i++))
do
    echo $[${list[$i]}*$1]
done

# 取得數組元素的個數       length=${#array_name[@]}
# 或者                   length=${#array_name[*]}
# 取得數組單個元素的長度    lengthn=${#array_name[n]}

三、讀取指定行並寫入文件

#!/bin/bash
file=/etc/passwd
num=(20 40 60 56 32 25)
for ((i=0;i<${#num[*]};i++))
do
    head -${num[$i]} $file |tail -1 >>/tmp/test.log
done

四、ping某個網段的主機,顯示是否存活

#!/bin/bash
for i in `seq 100 105`;do
ping -c 1  192.168.0.$i  >>/dev/null && echo "192.168.0.$i is up" || echo "192.168.0.$i id down"
done
# &&表示前面執行成功才繼續執行後面
# ||表示或者


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