Дисплей является первым аргументом Xorg
. Вы можете ps
затем grep Xorg
.
[braga@coleman teste_geom]$ ps aux | grep Xorg
root 1584 5.3 1.0 156628 41708 tty1 Rs+ Jul22 22:56 /usr/bin/Xorg :0 -background none -verbose -auth /var/run/gdm/auth-for-gdm-a3kSKB/database -nolisten tcp vt1
braga 9110 0.0 0.0 109104 804 pts/1 S+ 00:26 0:00 grep --color=auto Xorg
Вы можете затем awk
это в то, везде, где формат Вы должны.
Я не знаю, какой текст Ваше книжное использование, но руководство удара является четким (если Вы уже немного знакомы с перенаправлениями):
Если
|&
используется, стандартная погрешность command1, в дополнение к ее стандартному выводу, подключена к стандартному входу command2 через канал; это - сокращение от2>&1 |
. Это неявное перенаправление стандартной погрешности к стандартному выводу выполняется после любых перенаправлений, указанных командой.
Таким образом, если Вы не хотите смешивать стандартный вывод и стандартную погрешность, необходимо будет перенаправить стандартный вывод где-то в другом месте. Видеть Как к grep потоку стандартной погрешности (stderr)?
{ ./script.sh 2>&1 >&3 | sed 's:^:\t:'; } 3>&1
И fd 1 и 3 из script.sh
и sed
укажет исходному stdout месту назначения как бы то ни было. Если Вы хотите быть добропорядочным гражданином, можно закрыть их fd 3, в котором не нуждаются те команды:
{ ./script.sh 2>&1 >&3 3>&- | sed 's:^:\t:' 3>&-; } 3>&1
bash
и ksh93
может уплотнить >&3 3>&-
кому: >&3-
(fd перемещение).
|&
в ударе просто (не ужасно портативен) ярлык для 2>&1 |
, таким образом, необходимо видеть каждую расположенную с отступом строку.
|&
каналы stderr к stdin, как 2>&1 |
, таким образом, следующая программа получит обоих на stdin.
$cat test.sh
#!/bin/bash
echo "Normal Text."
echo "Error Text." >&2
$./test.sh | sed 's:^:\t:'
Error Text.
Normal Text.
$ ./test.sh |& sed 's:^:\t:'
Normal Text.
Error Text.
runcommand 2>&1 | tee
? т.е. runcommand |& tee
?
– Naftuli Kay
11.11.2011, 01:52