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

下载正确后运行脚本然后将其删除?

4

4 回答 4

59

我喜欢将它通过管道传输到 sh. 无需在本地创建和删除文件。

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

于 2013-11-30T20:48:28.637 回答
11

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

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

另外,如果你想要更健壮一点,你可以使用&&to 分隔命令,它只会在前一个命令成功的情况下尝试执行下一个命令:

wget http://sitehere.com/install.sh -v -O install.sh && ./install.sh; rm -rf install.sh
于 2012-10-08T18:39:26.670 回答
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选项 with 。wget除非您想使用不同的临时文件名,否则这是多余的install.sh
于 2013-10-21T04:53:27.030 回答
0

您在第一个语句中下载并在最后一个语句中删除。您需要添加一行来执行文件,方法是添加:

./install.sh
于 2012-10-08T18:42:51.917 回答