条件测试和别名

条件测试和别名

寻求一些帮助,因为我无法让它工作。我想测试apt系统上是否安装了它,然后为它创建别名(如果是的话)。

我想出了以下命令,但它不起作用,因为我已确定[ ]无论是否apt存在,它都会变为现实。

if [ -x $(which apt) &> /dev/null ]; then alias ai='sudo apt install';   alias ar='sudo apt remove';   alias as='apt search';   alias ah='apt history';   alias au='sudo apt update && sudo apt upgrade'; fi   # apt

我希望只有存在时才创建别名apt。您能想到我应该使用的正确测试吗?

答案1

-x文件测试而是$(which apt) &> /dev/null一个命令。

-x你可以这样做

if [ -x /usr/bin/apt ]; then

如果你想使用搜索which,你可以这样做

if [ -x "$(which apt)" ]; then

但是您也可以直接使用命令的退出状态which

if which apt &> /dev/null; then ...

请注意,这which并不总是确定的 - 例如参见为什么不使用“which”?那么用什么呢?

相关内容