bash中的IF语句输出?

时间:2017-04-06 10:18:13

标签: bash if-statement output

当我运行这个脚本时,它问的第一个问题是“你想使用卷曲吗?[Y / N]:”我的回复通常是Y或y。但是,当我这样做时,我得到的即时输出是“未知!”。我期待看到代码中的下一个问题是“很好,你想忽略证书[Y / N]:”

任何人都可以编辑我的代码以使其按预期工作吗?告诉我为什么?

#!/bin/bash

echo "Build command"

read -r -e -p "Would you like to use curl? [Y/N]: "

curlstring="curl"

if [[ "${input,,}" == "y" ]]; then    
    read -r -e -p "Great, do you want to ignore certificates [Y/N]: " input

    if [[ "$input" == "y" ]]; then
        curlstring=$curlstring" -k"
    else
        curlstring=$curlstring" "
    fi

    echo "$curlstring"    
elif [[ "${input,,}" == "n" ]]; then
    echo "Bye"    
else
    echo "Unknown!"
    exit 0
fi

1 个答案:

答案 0 :(得分:0)

错误是您 实际从第一个read命令捕获用户输入,更改它,

read -r -e -p "Would you like to use curl? [Y/N]: " input

同样bash对使用的结构非常敏感,行号15

fi echo "$curlstring"
当您提供Yy作为其中一个选项时,

可能会抛出 语法错误

Would you like to use curl? [Y/N]: Y
script.sh: line 15: syntax error near unexpected token `echo'
script.sh: line 15: `    fi echo "$curlstring"    '

将其更改为单独的行。