以 bash 格式输出 IF 语句



当我运行这个脚本时,它问的第一个问题是"你想使用 curl 吗?[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

错误是您实际上没有从第一个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"    '

将其更改为单独的行。

最新更新