Intereting Posts
Ctrl-y, yanking содержимое x-clipboard на терминал добавляет строку командной строки оболочки Купили динамики (HS-307 USB), проблема с драйвером Как установить срок действия пароля для бесконечного в теневом файле? Обнаружение поврежденного аудио CD Обслуживание веб-страниц с Apache на сервере Ubuntu Archlinux: никакие двоичные файлы не могут быть выполнены Значение адресной сетевой маски без маршрута к подсети? Окно хотело бы, чтобы X-представляет одновременно в двух фреймовых буферах APT фиксирует или подделывает номер версии моего собственного пакета? VirtualBox: одинаковый IP-адрес для обоих сетевых интерфейсов на одном компьютере (научный Linux)? Как тренироваться в командной строке? Microsoft LifeCam VX-800 прекратила работу над Linux Mint Правильный способ добавления пользователей в репозиторий Subversion Проблемы с Apache при попытке настроить SSL (Debian) Использование in / out именованных каналов для TCP-соединения

Проверка оболочки рыбы для существования файла в $ PATH

Я пытаюсь протестировать скрипт shell-оболочки для существования бинарного figlet . Поскольку я использую Linux и OS XI, вы не можете полагаться на файл, находящийся в том же месте, и его необходимо динамически разрешать. Я привык делать это с помощью $(which) в bash, который работает.

С рыбой, хотя это не работает должным образом. Зачем?

 function print_hostname --description 'print hostname' if test -x (which figlet) hostname | figlet end end 

Используйте type в fish как в борнеподобной оболочке:

 if type -q figlet hostname | figlet end 

Или ограничить исполняемые файлы в $PATH (игнорируя функции, встроенные функции):

 if command -s figlet > /dev/null hostname | figlet end 

См. Также Почему не использовать «что»? Что использовать тогда?