shell 指令碼之程式流程控制命令(1)

2021-05-22 08:55:06 字數 2221 閱讀 9631

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 為使用者,首先要判斷這些使用者是否已經...