2017-07-25 37 views
0

继续处理shell脚本,我提出了一个问题并使用2个条件验证了结果。我想要做的是继续阅读脚本的其余部分,如果这些条件是真的,否则问题必须始终询问用户。如何在我的shell脚本中遵循条件

其他的事情,它必须是一个功能,因为我会多次使用它。

我特意简化了代码:

#!/bin/bash 

t="5" 

function ask_version { 
while true ; do 

echo -ne "\033[32m$1\033[0m : " 
read -n 1 -r 

if [[ ! $REPLY =~ ^[0-9] ]] ; then 
    echo -e " Please respect number format" 
elif [[ $t -ne $REPLY ]] ; then 
    echo -e "It is not the true number" 
else 
    return 0 
fi 

done 
} 

ask_version "Please type a number" 
if [[ $? = 0 ]] 
#Here I wanna do the test, if true I continue... 
fi 

回答

0

如果我不是错了,它似乎是你需要的东西是这样的:

当你的条件是不尊重重复功能,并要求输入一个数字。当所有条件都满足时,中断并退出脚本。

while true; do 
    ask_version "Please type a number" 
    if (($? == 0)); then 
     #continue with the script 
     #if all conditions are ok 
     echo "Exiting" 
     break 
    else 
     #something wrong 
    fi 
    done 
+0

不,条件符合时继续执行脚本的其余部分! –

+0

是的。如果所有条件均满足,则继续执行脚本的其余部分,然后在最后退出循环。 否则在循环中重新请求一个数字。 – DanieleO

+0

@AnasSlim全部清楚吗? – DanieleO