shell 總結

1、特殊變量shell

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

2、數組循環示例數組

#!/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]}

3、讀取指定行並寫入文件bash

#!/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

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

#!/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
# &&表示前面執行成功才繼續執行後面
# ||表示或者
相關文章
相關標籤/搜索