Usandogrepcidr
con la lista de bloques de red enlist
:
$ echo '100.31.255.4' | grepcidr -f list
100.31.255.4
$ echo '10.31.255.4' | grepcidr -f list
(no output)
Como prueba:
if printf '%s\n' "$ipaddr" | grepcidr -f list >/dev/null; then
printf '%s is in the list\n' "$ipaddr"
else
printf '%s is not in the list\n' "$ipaddr"
fi
Для bash
и любой другой оболочки, поддерживающей readline
, вы можете использовать эту функцию
icd() { local a; read -ei "${1:-$PWD}" -p "$FUNCNAME> " a && cd "$a"; }
Использование
icd # Starts editing with $PWD
icd /root # Starts editing with /root
Это можно сделать хотя бы в zsh. Аналогичная вещь встроена в fzf , где вы можете нажать Alt+C , чтобы перейти в каталог с помощью нечеткого выбора :
.Вместо fzf можно было бы предположительно использовать предложенный вами icd
инструмент.
Я не верю, что это можно сделать в соответствии с -POSIX.