Bash脚本在其中执行带有变量的wget

时间:2015-05-07 16:51:04

标签: linux bash

我正在尝试执行一个带有变量的wget命令,但它只是忽略它,不知道我做错了什么?

ArrayList

3 个答案:

答案 0 :(得分:5)

四件事:

  1. 在您的网址周围添加引号:http :: //www.myurl.com ==>的 “http :: //www.myurl.com”
  2. 删除双冒号:“http :: //www.myurl.com”==> “http://www.myurl.com
  3. 摆脱wget命令中的额外标记和连字符:“wget -O - -q”$ URL / something / something2“”==> wget“$ URL / something / something2”
  4. 在变量周围添加花括号:“wget”$ URL / something / something2“”==> “wget”$ {URL} / something / something2“”
  5. 这有效:

    #!/bin/bash
    
    URL="http://www.google.com"
    
    echo $(date) 'Running wget...'
    wget "${URL}"
    

答案 1 :(得分:0)

Bash(或其他shell)中另一个方便的选项是创建一个简单的帮助函数,该函数使用几乎所有站点所需的公共选项以及您通常使用的任何特定选项来调用wget。这减少了所涉及的输入,并且在脚本中也很有用。我将以下内容放在〜/ .bashrc中,以使其可用于所有shell /子shell。它验证输入,检查wget是否可用,然后使用脚本中设置的默认选项将所有命令行参数传递给wget

wgnc () {
    if [ -z $1 ]; then
        printf "  usage:  wg <filename>\t\t(runs wget --no-check-certificate --progress=bar)\n"
    elif ! type wget &>/dev/null; then
        printf "  error: 'wget' not found on system\n"
    else
        printf "  wget --no-check-certificate --progress=bar %s\n" "$@"
        wget --no-check-certificate --progress=bar "$@"
    fi
}

您可以通过进一步对函数进行别名来减少打字。我用:

alias wg='wgnc'

这会将正常wget --no-check-certificate --progress=bar URL简化为wg URL。显然,您可以设置选项以满足您的需求,但这是在脚本中使用wget的另一种方法。

答案 2 :(得分:0)

我在 IPython (colab) 中使用该代码:


URL = 'http:://www.myurl.com'
!wget {URL}

我写这个答案是因为正在搜索它!)