bash,测试curl是否存在,不存在则安装

bash, test if curl exists, and install if it does not

我在谷歌上搜索了很多解决方案,但没有找到一个完全有效的解决方案。我自己粗略的工作是:

[ $(which curl) -eq "" ] || sudo apt install curl

这不太行,说“预期的一元运算符”。我试过 ===,所以我不知道如何进行这样的测试。 which curl 的空输出是否可能是 $null 并且我必须对此进行测试?

或者,如果已经安装,有没有办法在最后 运行 sudo apt install curl 然后 2>&null 来抑制?

which returns如果找不到程序就失败了,所以你可以

which curl &> /dev/null || sudo apt install curl

请注意,如果有人在 $PATH 中有一个名为 curl 的不同程序,脚本稍后仍然会失败。

-eq 比较数字,而不是字符串。