⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 describe.sh

📁 操作系统源代码
💻 SH
字号:
#!/bin/sh## DESCRIBE 1.17 - Describe the given devices.		Author: Kees J. Bot## BUGS# - Arguments may not contain shell metacharacters.case $# in0)	flag=; set -$- /dev ;;*)	flag=d ;;esacls -l$flag $* | \sed	-e '/^total/d' \	-e '/^[^bc]/s/.* /BAD BAD /' \	-e '/^[bc]/s/.* \([0-9][0-9]*\), *\([0-9][0-9]*\).* /\1 \2 /' \| {ex=0	# exit codewhile read major minor pathdo	case $path in	/*)	name=`expr $path : '.*/\\(.*\\)$'`		;;	*)	name=$path	esac	case $major,$minor in	1,0)	des="RAM disk" dev=ram		;;	1,1)	des="memory" dev=mem		;;	1,2)	des="kernel memory" dev=kmem		;;	1,3)	des="null device, data sink" dev=null		;;	2,*)	drive=`expr $minor % 4`		case `expr $minor - $drive` in		0)	des='auto density' dev="fd$drive"			;;		4)	des='360k, 5.25"' dev="pc$drive"			;;		8)	des='1.2M, 5.25"' dev="at$drive"			;;		12)	des='360k in 720k, 5.25"' dev="qd$drive"			;;		16)	des='720k, 3.5"' dev="ps$drive"			;;		20)	des='360k in 1.2M, 5.25"' dev="pat$drive"			;;		24)	des='720k in 1.2M, 5.25"' dev="qh$drive"			;;		28)	des='1.44M, 3.5"' dev="PS$drive"			;;		112)	des='auto partition 0' dev="fd${drive}a"			;;		116)	des='auto partition 1' dev="fd${drive}b"			;;		120)	des='auto partition 2' dev="fd${drive}c"			;;		124)	des='auto partition 3' dev="fd${drive}d"			;;		*)	dev=BAD		esac		des="floppy drive $drive ($des)"		;;	3,[05]|3,[123][05])		drive=`expr $minor / 5`		des="hard disk drive $drive" dev=hd$minor		;;	3,?|3,[123]?)		drive=`expr $minor / 5`		par=`expr $minor % 5`		des="hard disk $drive, partition $par" dev=hd$minor		;;	3,12[89]|3,1[3-9]?|3,2??)		drive=`expr \\( $minor - 128 \\) / 16`		par=`expr \\( \\( $minor - 128 \\) / 4 \\) % 4 + 1`		sub=`expr \\( $minor - 128 \\) % 4 + 1`		des="hard disk $drive, partition $par, subpartition $sub"		par=`expr $drive '*' 5 + $par`		case $sub in		1)	dev=hd${par}a ;;		2)	dev=hd${par}b ;;		3)	dev=hd${par}c ;;		4)	dev=hd${par}d ;;		esac		;;	4,0)	des="console device" dev=console		;;	4,[1-7])des="virtual console $minor" dev=ttyc$minor		;;	4,15)	des="diagnostics device" dev=log		;;	4,1[6-9])		line=`expr $minor - 16`		des="serial line $line" dev=tty0$line		;;	4,12[89]|4,1[3-8]?|4,19[01])		p=`expr \\( $minor - 128 \\) / 16 | tr '0123' 'pqrs'`		n=`expr $minor % 16`		test $n -ge 10 && n=`expr $n - 10 | tr '012345' 'abcdef'`		des="pseudo tty `expr $minor - 128`" dev=tty$p$n		;;	4,???)		p=`expr \\( $minor - 192 \\) / 16 | tr '0123' 'pqrs'`		n=`expr $minor % 16`		test $n -ge 10 && n=`expr $n - 10 | tr '012345' 'abcdef'`		des="controller of tty$p$n" dev=pty$p$n		;;	5,0)	des="anonymous tty" dev=tty		;;	6,0)	des="line printer, parallel port" dev=lp		;;	7,1)	des="raw ethernet" dev=eth		;;	7,2)	des="raw IP" dev=ip		;;	7,3)	des="TCP/IP" dev=tcp		;;	7,4)	des="UDP" dev=udp		;;	8,0)	des="CD-ROM" dev=cd0		;;	8,[1-4])		des="CD-ROM, partition $minor" dev=cd$minor		;;	8,12[89]|8,13?|8,14[0-3])		par=`expr \\( $minor - 128 \\) / 4 + 1`		sub=`expr \\( $minor - 128 \\) % 4 + 1`		des="CD-ROM, partition $par, subpartition $sub"		case $sub in		1)	dev=cd${par}a ;;		2)	dev=cd${par}b ;;		3)	dev=cd${par}c ;;		4)	dev=cd${par}d ;;		esac		;;	10,[05]|10,[123][05])		drive=`expr $minor / 5`		des="scsi disk drive $drive" dev=sd$minor		;;	10,?|10,[123]?)		drive=`expr $minor / 5`		par=`expr $minor % 5`		des="scsi disk $drive, partition $par" dev=sd$minor		;;	10,12[89]|10,1[3-9]?|10,2??)		drive=`expr \\( $minor - 128 \\) / 16`		par=`expr \\( \\( $minor - 128 \\) / 4 \\) % 4 + 1`		sub=`expr \\( $minor - 128 \\) % 4 + 1`		des="scsi disk $drive, partition $par, subpartition $sub"		par=`expr $drive '*' 5 + $par`		case $sub in		1)	dev=sd${par}a ;;		2)	dev=sd${par}b ;;		3)	dev=sd${par}c ;;		4)	dev=sd${par}d ;;		esac		;;	10,6[4-9]|10,7?)		tape=`expr \\( $minor - 64 \\) / 2`		case $minor in		*[02468])			des="scsi tape $tape (non-rewinding)" dev=nrst$tape			;;		*[13579])			des="scsi tape $tape (rewinding)" dev=rst$tape		esac		;;	13,0)		des="audio" dev=audio		;;	14,0)		des="audio mixer" dev=mixer		;;	BAD,BAD)		des= dev=		;;	*)	dev=BAD	esac	case $name:$dev in	*:)		echo "$path: not a device" >&2		ex=1		;;	*:*BAD*)		echo "$path: cannot describe: major=$major, minor=$minor" >&2		ex=1		;;	$dev:*)		echo "$path: $des"		;;	*:*)	echo "$path: nonstandard name for $dev: $des"	esacdoneexit $ex}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -