/usr/bin/kill -L
印刷:
1 HUP 2 INT 3 QUIT 4 ILL 5 TRAP 6 ABRT 6 IOT 7 BUS 8 FPE 9 KILL 10 USR1
11 SEGV 12 USR2 13 PIPE 14 ALRM 15 TERM 16 STKFLT 17 CHLD 17 CLD 18 CONT 19 STOP 20 TSTP
21 TTIN 22 TTOU 23 URG 24 XCPU 25 XFSZ 26 VTALRM 27 PROF 28 WINCH 29 IO 29 POLL 30 PWR
31 SYS 34 RTMIN 64 RTMAX
ここで、sedを使用して、信号の数に応じて、「11 SEGV」、「12 USR2」、または「SEGV」、「USR2」を印刷できるようにしたい(両方のソリューションが機能します)。
私はそうしました/usr/bin/kill -L|sed -n "s/\(^\| \)11 \([^ ]\+\)\+/<<\2>>/;s/.*<<\([^>]\+\)>>.*/\1/p"
。 「SEGV」が11に出力されます。
しかし、問題は、2番目の交換なしでより簡単に実行できるかどうかです。
ベストアンサー1
あなたできる走る
/usr/bin/kill -L | grep -o '[0-9]\+ [A-Z0-9]\+'
改行文字で信号を分離して簡単にgrep
使用してくださいgrep -w "^$NUM"
。
または使いやすいですkill -l "$NUM"
;-)
$ kill -l 11
SEGV