Ну, вы, конечно, могли бы разобрать их, скажем, в массив хэшей, но тогда что?
#!/usr/bin/env perl
use strict;
use warnings;
my @abcs;
while (<>) {
my ($name, @values) = split ' ';
if (m/^ABC\s/) {
push @abcs, { $name => \@values }
} else {
$abcs[-1]->{$name} = \@values;
}
}
use Data::Dumper; warn Dumper \@abcs;
print $abcs[0]{BBC}[3], "\n";
-121--251176- Если вы убиваете только его шды, может быть, останутся процессы, которые смогут пережить разрушение их виртуального терминала.
Если вы хотите чистого пути, вы можете убить все его процессы следующим синглелином:
for i in `ps uxa|grep ^roxa|sed 's/\+//g'|awk '{print $2}'`;do kill -9 $i;done
Суть этого синглелинового сценария находится между ", где не очень сложная труба обрабатывает ваш выход ps uxa
, и извлекает его из него.
Ввод команды make install
может привести к установке скрипта Sys V init в нужном месте.
Если выход
echo 1l|ed test.rb
заканчивается на \r$
у вас есть <carriage return>
перед<line-feed>
Строки в unix завершаются строкой -, поэтому env
ищет «winruby\r
», а не «winruby
».
отредактируйте свой скрипт в среде unix с помощью vi
, ed
или nano
и удалите '\r' в конце строки.
Редактировать:
Я могу создать тот же результат, что и вы, если мой PATH установлен, но не настроен для экспорта.
# PATH is set but not exported
jo@hostname:~/tmp$ winruby --version
running winruby --version
jo@hostname:~/tmp$ env winruby --version
env: winruby: No such file or directory
# print variables starting with PATH
jo@hostname:~/tmp$ set |grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# print exported variables starting with PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
# Oops ! nothing, so exporting PATH
jo@hostname:~/tmp$ export PATH
jo@hostname:~/tmp$ env | grep -e ^PATH
PATH=/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/home/jo/tmp/bin
# Final check
jo@hostname:~/tmp$ env winruby --version
running winruby --version
Другое возможное решение:
Убедитесь, что ваша переменная PATH не использует " ~" для указания пути, так как env не сможет правильно его разрешить.
Так, например, если у вас
export PATH="$PATH:~/bin"
Измените его на
export PATH="$PATH:$HOME/bin"