|
有对linux脚本比较了解朋友,看下这段。
#find puppy files in the pc...
touch /tmp/PUPPYFILES
for ONETRY in $LESSPARTS
do
FND_FULLINSTALL=""
$ONETRY" | cut -f 1 -d '|'`"
$ONETRY" | cut -f 2 -d '|'`"
#v403 nasty bug: usb optical drive showing as /sys/block/sr0, but won't mount, needs more delay...
mntfunc -t $ONEFS /dev/$ONEDEV /mnt/data
if [ $? -ne 0 ];then
sleep 5 #2 wasn't enough.
mntfunc -t $ONEFS /dev/$ONEDEV /mnt/data
[ $? -ne 0 ] && continue
fi
[ -f /mnt/data/etc/puppyversion ] && FND_FULLINSTALL="/etc/puppyversion"
FND_INITRDGZ="`find /mnt/data -maxdepth 2 -mount -type f -name initrd.gz | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
#v3.01 '*' means zero or more extra characters. this is for custom naming...
FND_PUPXXXSFS="`find /mnt/data/xxxx -maxdepth 2 -mount -type f -name pup_${PUPPYVERSION}*.sfs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`" //红色部分加路径是否可行
FND_ZDRVSFS="`find /mnt/data -maxdepth 2 -mount -type f -name zdrv_${PUPPYVERSION}.sfs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
FND_PUPSAVE2FS="`find /mnt/data -maxdepth 2 -mount -type f -name pup_save*.[23]fs | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
FND_SWAPFILEPUP="`find /mnt/data -maxdepth 2 -mount -type f -name pupswap.swp | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
#v2.22 improved folder name search, avoid false hits...
FND_MULTIFOLDER="`find /mnt/data -maxdepth 1 -mount -type d -name 20[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9]-[0-9][0-9] | grep -v ' ' | sed -e 's%^/mnt/data%%g' | tr '\n' ' '`"
[ "$FND_MULTIFOLDER" != "" ] && echo "$ONEDEV $ONEFS $FND_MULTIFOLDER" >> /tmp/MULTIFOLDERS
#all written on one line...
echo -n "$ONEDEV $ONEFS " >> /tmp/PUPPYFILES
echo "$FND_INITRDGZ $FND_PUPXXXSFS $FND_ZDRVSFS $FND_PUPSAVE2FS $FND_MULTIFOLDER $FND_FULLINSTALL $FND_SWAPFILEPUP" >> /tmp/PUPPYFILES
[ -f /mnt/data/SAVEMARK ] && PSAVEMARK="`cat /mnt/data/SAVEMARK`" #v3.97 partition# that has or will-have pup_save.
umntfunc /mnt/data
done
#in case PSUBDIR boot param (path of puppy files), filter...
if [ "$PSUBDIR" ];then
SPATTERN="/${PSUBDIR}/"
PUPPYFILES="`grep "$SPATTERN" /tmp/PUPPYFILES | head -n 1 | tr -s ' '`" #v3.00...
if [ "$PUPPYFILES" ];then
PDEV1="`echo -n "$PUPPYFILES" | cut -f 1 -d ' '`" #v3.01
DEV1FS="`echo -n "$PUPPYFILES" | cut -f 2 -d ' '`" #v3.01
xpupfiles="`echo -n "$PUPPYFILES" | cut -f 3-99 -d ' ' | tr ' ' '\n' | grep "$SPATTERN" | tr '\n' ' '`" #v3.01
PUPPYFILES="$PDEV1 $DEV1FS $xpupfiles"
fi
else
PUPPYFILES="`cat /tmp/PUPPYFILES | tr -s ' '`"
fi
echo "$PUPPYFILES" > /tmp/PUPPYFILES |
|