Условный тест и псевдонимы

Мне нужна помощь, так как я не могу заставить это работать. Я хочу проверить, установлен ли 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 . Можете ли вы придумать правильный тест, который мне следует использовать?

0
задан 5 December 2020 в 22:15

1 ответ

-x — это файл test, тогда как $(what apt) &> /dev/null — это команда.

Чтобы использовать -x, вы можете сделать

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

Если вы хотите выполнить поиск, используя what, вы можете сделать

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

однако вместо этого вы можете использовать статус выхода what команда напрямую:

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

Имейте в виду, что what не всегда является окончательным — см., например, Почему бы не использовать «what»? Что тогда использовать?

2
ответ дан 5 December 2020 в 18:45

Другие вопросы по тегам:

Похожие вопросы: