我想要在bash中获取并安装一行命令,例如:
curl XXX.deb | dpkg -i
但是dpkg报告缺少参数,怎么让它工作?
我建议在使用curl
命令时加入-o
选项,以避免将二进制文件重定向到stdout
,例如:
curl http://security.ubuntu.com/ubuntu/pool/universe/e/eigen3/libeigen3-dev_3.3.2-1_all.deb -o libeigen3-dev_3.3.2-1_all.deb && dpkg -i libeigen3-dev_3.3.2-1_all.deb
您不能像那样将信息直接传输到dpkg中。一个可能的解决办法是使用 &&
将它们组合在一起。这意味着第一个命令必须成功执行,才可以继续执行下一个命令。
curl XXX.deb && dpkg -i XXX.deb
假设你事先知道文件名并可以将其传递给两个语句。
你可以以类似的方式使用wget。
wget https://example.com/path/someapp.deb -O app.deb && sudo dpkg -i app.deb && rm -f app.deb
此外,wget 显示进度条并强制使用本地文件名(也许你无法从 URL 预测出来)。