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

📄 invsync

📁 <B>Digital的Unix操作系统VAX 4.2源码</B>
💻
字号:
#!/bin/sh5##	invsync.sh5 -#		inventory synchronization program###			Copyright (c) 1990 by#		Digital Equipment Corporation, Maynard, MA#			All rights reserved.##	This software is furnished under a license and may be used and#	copied  only  in accordance with the terms of such license and#	with the  inclusion  of  the  above  copyright  notice.   This#	software  or  any  other copies thereof may not be provided or#	otherwise made available to any other person.  No title to and#	ownership of the software is hereby transferred.		##	The information in this software is subject to change  without#	notice  and should not be construed as a commitment by Digital#	Equipment Corporation.					##	Digital assumes no responsibility for the use  or  reliability#	of its software on equipment which is not supplied by Digital.##	SCCSID = "@(#)invsync	4.2 (ULTRIX)	10/16/90";##	000	16-oct-1990	ccb#		bugfixes. integrate udetect call#CDPATH= ;export CDPATH		# assure no surprises.PATH=/install.tmp:/etc/stl:/etc:/bin:/usr/bin:/usr/adm/bin:/usr/ucb:	-Main#		main routine#Main(){	cd  /usr/etc/subsets	# Establish a list of subsets which must be syncronized,	#  taken in install-order.	SYNCLIST=`ls -rt *.inv | sed 's/\.inv//g'`	# determine which of these are installed	INSTALLED=	for S in $SYNCLIST	{		[ -f $S.lk ] &&			INSTALLED="$INSTALLED $S"	}	set -- $INSTALLED	# sort the initial inventory ascending by pathname	Y=$1	echo "Initial Subset: $Y"	sort -o $Y.#syn +9 -10 $Y.inv	# Iteratively synchronize inventories 2 at a time.	#  the oldest two are synchronized into one which	#  is in turn used as the oldest in the next iteration	#	while [ $# -gt 1 ]	do		# pop the first two from the list.		X=$1 Y=$2		shift		mv $X.#syn $X.syn 2> /dev/null		# get original copies the inventories		#  if we haven't already and sort them		[ -f $X.syn ] ||		{			sort -o $X.syn +9 -10 $X.inv &			SORTPID=$!		}		[ -f $Y.syn ] ||			sort -o $Y.syn +9 -10 $Y.inv		(Wait SORTPID)		# synchronize the inventory pair		echo "Synchronize $Y...\c"		usync $X.syn $Y.syn > $Y.#syn		echo "done."		rm -f $X.syn	done	mv $Y.#syn MSI	(cd /;/etc/stl/udetect) < MSI > CFI}:	-Wait#		intelligent wait routine##	given:	$1 - the name of the variable contianing the pid of the#			process to wait for (yes, this uses call-by-reference)#		[$2 - $n] - optional string to eval if wait fails#	does:	wait on the specified PID if contents of $1 is not null#		if wait returns !0 status, eval remainder of command line#		clear contents of variable specified in $1#	return:	exit status of the waitWait(){	VAR=$1	shift	# was there a first arg?	[ ! "$VAR" ] && return 0	eval VAL=\$$VAR	# was the value of the named variable set?	[ ! "$VAL" ] && return 0	# clear the value from the named variable	eval $VAR=	wait $VAL ||	{		STAT=$?		eval $*		return $STAT	}}ARGS=$*[ "$INVSYNC_DEBUG" ] || Main $ARGSecho OK

⌨️ 快捷键说明

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