首页 > 解决方案 > bash,测试curl是否存在,如果不存在则安装

问题描述

我搜索了许多解决方案,但没有找到一个完全有效的解决方案。我自己的粗活是:

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

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

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

标签: bashcurlsudo

解决方案


which如果找不到程序,则返回失败,因此您可以

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

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

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


推荐阅读