shell中的for while case语法

2023-03-30 15:22:48 浏览数 (1)

在Shell中,for、while、case等语句可以用于控制程序的流程,根据不同的条件执行不同的操作。下面我们将分别介绍for、while、case语句的语法及其用法。

for语句

for语句的语法如下:

代码语言:javascript复制
for var in list
do
    command1
    command2
    ...
done

其中,var表示循环变量,list是需要遍历的列表,command1command2等是需要执行的命令。

举个例子,如果我们需要对某个目录下的所有文件进行操作,可以使用for语句:

代码语言:javascript复制
for file in /path/to/dir/*
do
    echo $file
done

上述代码中,file为循环变量,/path/to/dir/*表示需要遍历的文件列表,echo $file表示输出文件名。

while语句

while语句的语法如下:

代码语言:javascript复制
while condition
do
    command1
    command2
    ...
done

其中,condition是一个判断条件,如果满足条件,则执行command1command2等命令,直到条件不满足为止。

举个例子,如果我们需要不断读取用户的输入,直到输入为exit时退出循环,可以使用while语句:

代码语言:javascript复制
while true
do
    read input
    if [ "$input" = "exit" ]
    then
        break
    fi
    echo $input
done

上述代码中,true表示条件始终为真,read input表示读取用户的输入,if [ "$input" = "exit" ]表示判断输入是否为exit,如果是则退出循环。

case语句

case语句的语法如下:

代码语言:javascript复制
case expression in
    pattern1)
        command1
        ;;
    pattern2)
        command2
        ;;
    pattern3)
        command3
        ;;
    *)
        default-command
        ;;
esac

其中,expression是一个表达式,pattern1pattern2等是匹配模式,command1command2等是需要执行的命令,*表示匹配任何模式的默认情况。

举个例子,如果我们需要根据用户的输入执行不同的操作,可以使用case语句:

代码语言:javascript复制
read input
case $input in
    start)
        echo "starting..."
        ;;
    stop)
        echo "stopping..."
        ;;
    restart)
        echo "restarting..."
        ;;
    *)
        echo "invalid input"
        ;;
esac

上述代码中,read input表示读取用户的输入,根据不同的输入执行不同的操作。

以上是for、while、case语句的语法及其用法,它们可以帮助我们更好地控制Shell程序的流程,提高程序的灵活性和可读性。

0 人点赞