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 # &&表示前面執行成功才繼續執行後面 # ||表示或者