Как проверить, существует ли программа в Linux

23 mar 2023 2 min di lettura
Как проверить, существует ли программа в Linux
Indice dei contenuti

Введение

Сценарий оболочки — это мощный инструмент для автоматизации задач в системах на основе Unix. Обычным требованием при написании сценариев оболочки является проверка существования конкретной программы или команды в системе. Эта статья познакомит вас с несколькими методами выполнения этой проверки, что позволит вам сделать ваш скрипт более надежным и надежным.

Краткое содержание:

  • Использование команды -v
  • Использование типа команды
  • На основании какой команды
  • Использование хеш-команды
  • Рекомендации по передовой практике

Используйте команду -v

Команда `-v` представляет собой POSIX-совместимый метод проверки существования программы. Это встроенная команда оболочки, которая возвращает путь к команде, если она существует в системе. Вот пример того, как его использовать:

if command -v program_name > /dev/null 2>&1; then
 echo "Program exists"
 else
 echo "Program does not exist"
 fi

Замените «имя_программы» на программу, которую вы хотите проверить.

Используйте команду типа

Команда type — это еще одна встроенная команда оболочки, которую можно использовать для проверки существования программы. Она похожа на команду -v, но также предоставляет информацию о типе команды (псевдоним, функция или файл). Вот как это использовать:

if type program_name > /dev/null 2>&1; then
 echo "Program exists"
 else
 echo "Program does not exist"
 fi

Замените «имя_программы» на программу, которую вы хотите проверить.

Положитесь на команду which

Команда which — это внешняя утилита, которая ищет данную команду в каталогах, указанных в переменной среды PATH. Хотя он не совместим с POSIX, он обычно доступен в системах на базе Unix. Вот как это использовать:

if which program_name > /dev/null 2>&1; then
 echo "Program exists"
 else
 echo "Program does not exist"
 fi

Замените «имя_программы» на программу, которую вы хотите проверить.

Используйте хеш-команду

Команда hash — это встроенная команда оболочки, которая поддерживает хеш-таблицу недавно выполненных команд, ускоряя поиск команд. Вы можете использовать его для проверки существования программы следующим образом:

if hash program_name 2> /dev/null; then
 echo "Program exists"
 else
 echo "Program does not exist"
 fi

Замените «имя_программы» на программу, которую вы хотите проверить.

Рекомендации по передовой практике

  • Всегда предпочитайте встроенные команды оболочки, такие как command -v, type или hash, а не внешние утилиты, which для лучшей совместимости и производительности.
  • Перенаправление вывода на /dev/null (используя '> /dev/null 2>&1') необходимо для предотвращения появления ненужного вывода или вмешательства в скрипт.
  • Если вам нужно управлять несколькими программами, используйте цикл и массив, чтобы сделать ваш сценарий более кратким и удобным в сопровождении.

Заключение

В этой статье мы обсудили четыре различных метода проверки существования программы в сценарии оболочки. Хотя command -v является наиболее рекомендуемым и широко совместимым методом, тип, хэш и команды также могут использоваться в зависимости от ваших системных требований и среды. Включив эти проверки в свои сценарии оболочки, вы можете сделать ваши сценарии более надежными и адаптируемыми к различным средам.

Buy me a coffeeBuy me a coffee

Supportaci se ti piacciono i nostri contenuti. Grazie.

Successivamente, completa il checkout per l'accesso completo a Noviello.it.
Bentornato! Accesso eseguito correttamente.
Ti sei abbonato con successo a Noviello.it.
Successo! Il tuo account è completamente attivato, ora hai accesso a tutti i contenuti.
Operazione riuscita. Le tue informazioni di fatturazione sono state aggiornate.
La tua fatturazione non è stata aggiornata.