Мужики, всю голову уже сломал ... туплю и непонимаю почему bash меня "посылает" ...
Короче пишу скрипт убивающий некоторые неотвечающие процессы ssh (после кратковременного пропадания связи) по uid процесса для этого:
1. ищу сам процесс по ключевой фразе: ps a|grep 5000:|head -1 - это работает (ключевая фраза для поиска "5000:" - суть порт маппинга)
2. есть символьные функции bash: expr substr "какая то строка" 1 5 - чтобы взять первые пять символов, тоже работает.
3. скармливаю первое второму: expr substr $(ps a|grep 5000:|head -1) 1 5 - не работает ... посылает ... "expr: синтаксическая ошибка"
P.S. в последствии хочется скормить полученные пять первых символов - суть uid киллу (kill) для добивания процесса. До этого как видите еще не дошел ... Сделать killall ssh не могу, так как процессов одновременно болтается несколько и все грохать нельзя ... только выбранные по uid.
Прошу указать в чем моя ошибка. Заранее благодарю сообщество.
Пользователь решил продолжить мысль 05 Ноября 2010, 21:40:02:
Ребят, простите старого пня ... написал потом сам заметил свою ошибку ....
Как всегда забыл кавычки .... Надо:
expr substr "$(ps a|grep 5000:|head -1)" 1 5
Удалять не стал, авось кому интересно будет. Всем спасибо .... Да прибудет с Вами Сила!