【问题标题】:How to write a bash script that downloads files from the internet?如何编写一个从 Internet 下载文件的 bash 脚本?
【发布时间】:2019-09-02 20:58:45
【问题描述】:

我对编程很陌生,我正在尝试创建一个脚本,用户将在其中连接到 8.8.8.8。如果连接成功,那么脚本会提示用户要下载哪个网站。重复该过程,直到用户键入“exit”(使用 while 循环) 到目前为止,这就是我编写的代码。谁能告诉我我做错了什么?

#!/bin/bash

ping -c 4 8.8.8.8
while true;
do
if [ $? -eq 0 ]
then
read -p "please type a website URL to download or type exit to quit" URL
wget -m $URL
else
echo "No internet connection"
exit 1
done

【问题讨论】:

  • 1 你不检查ping的结果,但总是继续。 2 没有任何东西可以检查单词exit
  • 所以检查用户是否输入了退出。

标签: bash shell scripting wget


【解决方案1】:
#!/bin/bash

ping -c 4 8.8.8.8
if [ $? -gt 0 ]
then
    exit 1
fi
while true
do
    read -p "please type a website URL to download or type exit to quit: " URL
    if [[ $URL == "exit" ]]
    then
        exit 1
    fi
    wget -m $URL
done

第 1 步:从 ping 获取返回码,如果不成功则退出

第2步:如果用户输入“exit”,则读取url并退出,否则wget

【讨论】:

  • 谢谢..现在我明白了
  • 如果命令是最后一行,则不需要在命令后加冒号。 while true; do⏎ 在同一行,或 while true⏎ do⏎
  • 你说得对,我只是从问题中复制/粘贴脚本。修正了答案。
猜你喜欢
  • 1970-01-01
  • 2012-01-23
  • 1970-01-01
  • 1970-01-01
  • 2019-09-02
  • 2020-02-10
  • 2022-12-15
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多