Описание тега mamp
Установить ИФС
в :
разделить стоимость пути
на колоны. Если найти
есть -прекратить
действие и -maxdepth с
основным (например, FreeBSD, OSX и ГНУ), вы знаете, что команда будет существовать и вы не заботитесь о Команды код возврата, вы можете использовать этого один-лайнер:
шаблон='в LibreOffice?.?'
ИФС=:; найти пути $Path -параметр maxdepth 1 -тип Ф -имя "$шаблон" -в exec {} \; -бросить курить; сбросить МФС
Это не обеспечивает простой способ сообщить, будет ли команда найдено. Кроме того, чтобы быть более надежными, отключить подстановку в случае, если стоимость пути
содержит подстановочные знаки. Кроме того, можно иметь пустой компонент в путь
, что означает текущий каталог (но я советую использовать .
вместо). Приведенный ниже код решает все эти осложнения.
шаблон='в LibreOffice?.?'
случае $path в
:*) каталоги=.$Пути;;
*::*) каталоги=${путь%%::*}:.:${Путь#*::};;
*:) каталоги=$путь.;;
*) каталоги=$путь;;
эсок
комплект -Ф; ИФС=:
КМД=
для D в $каталогах; делать
набор +Ф
для X в "$д"/$рисунком; делать
если [ -Х "$Х" ] && ! [ -Д "$х" ]; затем
КМД=$х
перерыв
интернет
сделано
если [ -н "$УМК" ]; затем перерыв; интернет
сделано
комплект +Ф; сбросить МФС
если [ -з "$УМК" ]; затем
Эхо 1>&2 "$шаблон: не нашел в пути"
выход 127
еще
метод exec "$УМК"
интернет
Если вы будете использовать zsh (в отличие от обычной рыбы, Баш, КШ, ...), это намного проще, чтобы принять надежное решение.
шаблон='в LibreOffice?.?'
играм=($^путь/$~узор(Н. в.*[1]))
если ((!#матчей)); тогда
$соответствует[1]
еще
Эхо 1>&2 "$шаблон: не нашел в пути"
выход 127
интернет