BASH 尝试离开嵌套语句/循环/函数

BASH 尝试离开嵌套语句/循环/函数

我正在学习如何使用 bash 为大学编写第一个脚本,但我在嵌套语句/循环/函数方面遇到了麻烦。

我正在尝试编写一个 if 语句,其中如果变量值为 true,它会从该 if 语句中中断/返回,然后还会从包含的 while 循环中中断,该循环也是函数的一部分,我想结束它(当 if 语句的变量为 true 时)。

我尝试过 return N、break N 和 exit(我现在知道这只是结束脚本。)这是我如何尝试设置脚本的示例。

#!/bin/bash

function1()
{
    while read -p "Enter a value: " input
    do
        if [ $input="X" ]
        then
            return 2
        fi
        # Rest of while statement
    done
    # End of while loop.
}
# End of function.

function1
# Call function1.
# Rest of script

任何人都可以了解这应该如何运作吗? (我对这个问题的令人震惊的格式表示歉意,我是该网站的新手,还没有真正坐下来花时间学习它是如何工作的,抱歉。)

答案1

这就是你想要的:

#!/bin/bash

function1() {

    while read -p "Enter a value: " input; do

        if [ $input = "X" ]; then
            return 2
        fi

    # Rest of while statement
    done
    # End of while loop.
}
# End of function.

function1 # Call function1. # Rest of script

就像在“=”之前和之后添加空格并使用简单的 [] 作为条件一样简单。

答案2

if [ $input="X" ]

应该:

if [[ $input="X" ]]

相关内容