if-then-elif-else-fi
語法:if expression
then
[elif expression
then
then-ommand-list ]
........ [
else
else-command-list] fi
用途:實現二路或多路跳轉
第一種if語句沒有任何可選擇特性,這決定了它通常用於二路跳**
語法:if expression
then
then-command
fi例程:
$ cat if_demol
#! /bin/bash
if test $# -na 1
then
echo "usage :$0 ordinary_file"
exit 1
fiif test -f "$1"
then
filename="$1"
set $(ls -il $filename)
inode="$1"
size="$6"
echo "name tnode size"
echo
echo "$filename $inode $size"
exit 0
fiecho "$0: argument must be an ordinary file"
exit 1
第二種if 語句;
語法:if expression
then
then-command
else
else-command
fi用途:實現二路跳轉
例程:$ cat if_demol2
#! /bin/bash
if[$# -ne 1]
then
echo "usage: $0 ordinary_file"
exit 1
fiif [-f "$1" ]
then
filename="$1"
set $(ls -il $filename)
inode="$1"
size="$6"
echo "name inode size "
echo
echo "$filename $inode $size"
exit
else
echo
echo "$0 argment must be an ordinary file"
exit 1
fi第三種if語句用來實現多路跳轉
語法:if expression
then
then-command
elif expression2
elif-command
elif expression3
elif-command
else
else-command
fi例程:
$ cat if_demol3
#! /bi/bash
if[ $# -ne 1]
then
echo "usage: $0 file"
exit 1
else
ls "$1"2>/dev/null 1>$2
if [$? -ne 0 ]
then
echo"$1:not find"
exit 1
fiif [ -f "$1"]
then
filename="$1"
set (ls -il $filename)
inode="$1"
size="$6"
echo "name inode size"
echo
echo "$filename $inode $size"
exit 0
elif [ -d "$1"]
then
nfiles=$(ls "$1 | wc -w")
echo "the number of files in the directionary is $nfiles."
exit 0
else
echo "$0:argument must be an ordinary file or directory"
exit 1
fifi
shell指令碼和流程控制
輸出 echo 注釋以 開頭,但唯獨第一行不是注釋,他代表當前shell的型別,下面寫乙個小例子 bin bash 直接寫命令 輸出當前時間 date 輸出當前使用者資訊 who 建立變數,變數和等號之間不能有空格,當字串之間沒有空格時可以直接賦值,有空格的要加雙引號 str1 i str str1...
shell指令碼之流程控制語句
一 分支控制語句 1 if fi條件 if condition then action fi2 if else fi條件 if condition then action else action fi3 if else if else fi條件 if condition then action el...
15Shell指令碼 流程控制
流程控制語句 儘管可以通過使用linux命令 管道符 重定向以及條件測試語句編寫最基本的shell指令碼,但是這種指令碼並不適用於生產環境。原因是它不能根據真實的工作需求來調整具體的執行命令,也不能根據某些條件實現自動迴圈執行。例如,我們需要批量建立 1000 為使用者,首先要判斷這些使用者是否已經...