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