Этот работает без внешних зависимостей (только встроенные команды оболочки) и будет работать с пеплом busybox.
Иногда вы не можете вспомнить, как это пишется, хотя для тех из нас, кому просто нужно найти близкое соответствие, есть эта функция, добавляемая в bashrc:
find_bin(){
for x in ${PATH//://*${1}* }*${1}*; do
[ -f "$x" ] && echo $x
done
}
grep find_bin перечислит все двоичные файлы в $ PATH с именем grep вместе с их путем {grep, egrep, fgrep, bugreport, ... }
это может принять следующий синтаксис:
- а * я - с аз
- стоит?z - с <1 символом> z
- а [0-9] z - с аз
- a [az] z - с помощью az
- a [AZ] z - с помощью az
- а * {а, г} * г - с .... такой же , как в [AZ] г
если вы иногда хотите, чтобы оно совпадало только с целым словом и не сообщало egrep, fgrep или bugreport при вводе grep, вы можете удалить звездочки и добавить их обратно в командную строку только там, где вы хотите
find_bin(){
for x in ${PATH//://${1} }${1}; do
[ -f "$x" ] && echo $x
done
}
для этого нужен один дополнительный синтаксис для сопоставления начала и конца
- * grep - будет соответствовать командам, оканчивающимся на gre (найдет grep, egrep и fgrep, но не сообщит об ошибке)
- grep - будет соответствовать только точной строке grep
- grep * - будет соответствовать командам, начинающимся с grep
- все вышеприведенные шаблоны также применимы