wget并在一行中运行/删除bash脚本

时间:2012-10-08 18:36:27

标签: bash shell wget

wget http://sitehere.com/install.sh -v -O install.sh; rm -rf install.sh

在下载后运行脚本,然后将其删除?

4 个答案:

答案 0 :(得分:49)

我喜欢把它管成sh。无需在本地创建和删除文件。

wget http://sitehere.com/install.sh -O - | sh

答案 1 :(得分:9)

我认为您可能需要实际执行它:

wget http://sitehere.com/install.sh -v -O install.sh; ./install.sh; rm -rf install.sh

此外,如果您想要更强大一些,可以使用&&来分隔命令,如果前一个命令成功,它们将只尝试执行下一个命令:

wget http://sitehere.com/install.sh -v -O install.sh && ./install.sh; rm -rf install.sh

答案 2 :(得分:1)

我认为这是最好的方法:

wget -Nnv http://sitehere.com/install.sh && bash install.sh; rm -f install.sh

故障:

  • -N--timestamping只会在服务器上更新时下载该文件
  • -nv--no-verbose最大限度地减少输出,或-q / --quiet完全没有“wget”输出
  • &&只会在第一个成功
  • 时执行第二个命令
  • 使用bash(或sh)来执行脚本,假设它是脚本(或shell脚本);无需chmod +x
  • rm -f(或--force)文件,无论发生什么(即使它不存在)
  • 在此方案中,没有必要将-O选项与wget一起使用。除非您想使用与install.sh
  • 不同的临时文件名,否则它是多余的

答案 3 :(得分:0)

您正在第一个语句中下载并在最后一个语句中删除。 您需要添加一行来执行以下操作:

./install.sh