Форум: "Прочее";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Внизbash Найти похожие ветки
← →
Сергей М. © (2007-12-03 16:42) [0]Подскажите эффективный скрипт для поиска номера порта по имени сервиса и (опционально) названию протокола ?
← →
tesseract © (2007-12-03 17:11) [1]man grep. man netstat
← →
umbra © (2007-12-03 18:19) [2]
#!/bin/bash
#test.sh - ищем порт по имени службы
echo
grep "\<$1\>" /etc/services
вызов -sh test.sh pop3
← →
Сергей М. © (2007-12-04 17:16) [3]
> umbra © (03.12.07 18:19) [2]
К сож., не подойдет.
Скрипт возвращает целиком строки, мне же нужен возврат найденного номера порта.
Пока выкрутился так:
# /opt/svcport.sh
#!/bin/sh
if [ -n "$1" ]
then
found=`expr "$1" : "\s*\([0-9]\+\)\s*"`
if [ -z "$found" ]
then
name=$(echo $1 | tr A-Z a-z)
proto=$(echo $2 | tr A-Z a-z)
templ=".*\$[^#]\s*$name\s*\([0-9]\+\)\s*\/\s*$proto[\s*#]*"
found=`expr "$(cat -e /etc/services)" : "$templ"`
fi
echo $found
fi
Пример вызова:/opt/svcport.sh http tcp
Все чудесно за искл. одной беды - expr регисстрочувствителен при поиске.
Страницы: 1 вся ветка
Форум: "Прочее";
Текущий архив: 2008.01.06;
Скачать: [xml.tar.bz2];
Память: 0.44 MB
Время: 0.004 c