0

我正忙着编译一个脚本,通过向 PuTTy 窗口发送一些命令来在 Linux 上自动安装 MySQL。

我遇到的问题是一个存储库的下载链接不断变化,如果链接不可访问,我需要弹出一个提示。

这是我到目前为止得到的:

wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
&& echo "WE GOT IT" || echo "URL Invalid, Please specify new URL:" 
&& read newurl && wget $newurl

但是无论文件是否存在,运行结果是: 1. 第一个文件将下载,它将显示回显消息,然后它将等待读取 newurl 命令以获取用户输入,然后 wget 该新变量。

如何在“||”之后制作整个下半场 仅在第一个 url 不起作用时才会发生?

4

2 回答 2

1

重构你的代码

你的代码太扭曲了。虽然您可以使用大括号表达式对其进行改进,但最好将您的逻辑重构为 if/else 语句。作为(未经测试的)示例:

if wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm
then
    echo 'We got it!'
else
    read -p 'URL invalid. Please specify new URL: '
    wget "$REPLY"
fi
于 2013-01-06T20:03:21.233 回答
0
wget http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 
&& echo "WE GOT IT" && exit || echo "URL Invalid, Please specify new URL:" 
&& read newurl && wget $newurl


Add "exit" on left side of ||  with && operator ,,if the left argument is true then it will download that file and exit from terminal otherwise prompt for new url
于 2013-01-06T20:16:01.623 回答