【发布时间】:2017-04-06 10:18:12
【问题描述】:
当我运行这个脚本时,它问的第一个问题是“你想使用 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命令的末尾添加input,就像你在第二个命令中所做的那样,以便你之后测试的$input变量对应于用户的输入。 -
非常感谢 Aaron,这解决了我的问题(编码新手)
-
不客气,Aaron,很高兴帮助同音词:) 顺便说一句,下次尝试使用
bash -x <script>执行脚本,它会显示程序执行期间发生的情况,您可能会看到读取时没有更改任何变量,并且您正在针对未设置的变量进行测试。 -
啊,我明白了,我相信这会派上用场。谢谢
标签: bash if-statement output