您的位置:首页 > 运维架构 > Shell

shell 脚本之程序流程控制命令(1)

2010-04-26 10:09 776 查看
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

fi

if 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

fi

echo "$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

fi

if [-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

fi

if [ -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

fi

fi
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: