string=$(ps -ef | grep SomeWord | tail -1)
После этого нужно получить первое слово из переменной string (то есть значение pid).
pid= ???
В перспективе понадобится извлекать из строки и другие значения. Как разбить строку на слова? Идеально было бы создать массив с элементами-словами.
Bash. Как разбить строку на слова?
Модераторы: /dev/random, Модераторы разделов
- Mage-Warrior
- Сообщения: 869
- Статус: Семь раз понюхай, один раз откуси!
- ОС: SlackWare 12.1
Re: Bash. Как разбить строку на слова?
Код: Выделить всё
string1=$(ps -ef | grep SomeWord | tail -1)
array1=( $string ) # разбивает строку и помещает в массив
echo ${#array[@]} # посмотрим-ка, сколько аргументов!
echo ${array[1]} # А вот и pid!
*- Большинство проблем, дружок, завсегда покажет лог! -*
-
- Бывший модератор
- Сообщения: 4038
- Статус: Искусственный интеллект (pre-alpha)
- ОС: Debian GNU/Linux
Re: Bash. Как разбить строку на слова?
Можно так:
Код: Выделить всё
ps -ef |grep Something |grep -v grep |tail -n 1 |while read _UID _PID _PPID _C _STIME _TTY _TIME _CMD; do
echo uid=$_UID
echo pid=$_PID
echo ppid=$_PPID
echo c=$_C
echo stime=$_STIME
echo tty=$_TTY
echo time=$_TIME
echo cmd=$_CMD
done
Мои розовые очки