我正在学习如何使用 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" ]]