1.for循環shell
for循環用於值列表中的相同命令的重複bash
#!/bin/bashide
while [ -z "$*" ]函數
do測試
echo "please give a num"this
exit 0spa
done命令行
for ((i=0;i<$1;i++))3d
dorest
((j=j+i))
done
echo $j
測試
2.bash位置參數
有兩種簡單的方法能夠將用戶輸入讀入bash中的變量。第一個方法是使用read提示用
戶輸入(使用-p選項)並將其直接存儲到一個或多個變量:
交互式輸入
# read -p 'Enter your first and last name: ' FIRST LAST
另外一個方法是使用位置參數來讀取傳遞給腳本的命令行參數或選項輸入。各類特殊
變量存儲傳遞的選項編號
Bash解析的個別參數或整個原始命令行。
指定的位置參數總數:$#
位置參數自身:$0、$一、$二、$3....
全部位置參數: $@、$*
#!/bin/bash
echo $*
echo $0
echo $1
echo $2
echo $3
echo $#
測試:
3.退出狀態
Linux命令完成時,將返回退出狀態。成功完成程序時,將返回0的推出狀態。這被bash
看成邏輯True值。非零退出狀態一般表示發生了錯誤,而且被bash看成邏輯False值。
例如:grep的退出狀態的含義:
0 – 在指定的文件中找到了模式
1 – 在指定的文件中未找到模式
>1 – 一些其餘錯誤(沒法打開文件、錯誤的搜索表達式等)
推出狀態的值被存儲在"?"中,可使用如下命令查看:
# echo $?
#!/bin/bash
while [ -z "$*" ]
do
echo "please give a num"
exit 0
done
for ((i=0;i<$1;i++))
do
((j=j+i))
done
echo $j
echo $?
測試:
4.test條件判斷
test命令可用於評估bash腳本中的表達式。它評估其參數所指定的表達式,若是表達式
爲true,返回零退出狀態,若是表達式爲false,則返回非零退出狀態。test具備替代語
法,使用方括號"[]"將表達式括起來,這樣更易於閱讀
#!/bin/bash
while [ -z "$*" ]
do
echo "please give a varchar"
exit 0
done
[ -f "$1" ]&&echo "$1 is a file"
[ -d "$1" ]&&echo "$1 is a direction"
[ -b "$1" ]&&echo "$1 is a 設備"
[ -x "$1" ]&&echo "$1 is a 可執行文件"
[ -c "$1" ]&&echo "$1 is a char"
echo $?
測試:
5.if語句
if命令檢查if後面的命令或列表的退出值。若是第一個命令評估爲true/零,則運行then
以後的命令列表,直至任一else。若是第一個命令評估爲false/非零,則運行else與fi之
間的命令列表(反向平寫if,標記if塊的結束)。
語法:if command; then command; command2; else command3; fi
水仙花數(i只能給大於99,小於1000的數)
#!/bin/bash
while [ -z "$1" ]
do
echo "please give me a num"
exit 0
done
for ((i=100;i<$1;i++))
do
let x=$i/100
m=`echo ${x%.*}`
let y=($i-m*100)/10
n=`echo ${y%.*}`
let z=$i-m*100-n*10
o=z
num1=$((m*100+n*10+o))
num2=$((m*m*m+n*n*n+o*o*o))
if [ $num1 -eq $num2 ];then
echo "水仙花數$num1"
fi
done
測試
6.case語句
case語句 :它可以把變量的內容與多個模板進行匹配,再根據成功匹配的模板去決定應該執行哪
#!/bin/bash
case $1 in
start | begin)
echo "start something"
;;
stop | end)
echo "stop something"
;;
reload | restart)
echo "restart or reload something"
;;
*)
echo "you no give me a command" esac
測試
7.expect
在shell中利用expect實現自動應答腳本
8.函數
#!/bin/bash
ACTION () {
if
[ -z "$3" ]
then
echo "please give me a userfile"
elif
[ ! -e "$3" ]
then
echo "$3 is not exist!!"
else
[ $1 "$3" ]&&echo "$2"
fi
}
ACTION -f 'this is a file' $1
ACTION -d 'this is a direction' $1
ACTION -b 'this is a 設備' $1
ACTION -c 'this is a char' $1
9.環境變量
shell和腳本使用變量來存儲數據 ,有些變量能夠連同它們的內容傳遞給子進程,這些
變量咱們稱之爲環境變量