- 论坛徽章:
- 0
|
有一个ksh
代码:
#********* addusers.sh ************
# addusers.sh - ksh script for add
# list of users from file to NIS+
# Format of file with users:
# gid login name1 name2 name3
# where:
# gid - Group ID
# login - Login name
# name1 - First Name -+
# name2 - Second Name +- Real user name
# name3 - Last Name -+
#**********************************
#!/bin/ksh
UID=`id|awk -F\( '{print $1}'|awk -F= '{print $2}'`
if [ $UID = 0 ]
then
if [ ! -z $1 ] && [ -f $1 ]
then
EXPHOME=/export/home
HNAME=`uname -n`
COUNT=0
ID=3000
DNAME=`domainname`
echo "\c" > passwd.txt
echo "\c" > error.log
echo `cat $1|nawk '{print $1}'|sort -u|wc -l` "groups \c"
for g in `cat $1|nawk '{print $1}'|sort -u`
do
if [ -z `niscat group.org_dir|nawk -F: '{print $1}'|grep $g` ]
then
echo ".\c"
nistbladm -a name=g$g gid=$g group.org_dir
else
echo Group $g exists >> error.log
fi
done
echo ""
echo `cat $1|wc -l` "users \c"
for u in `cat $1|nawk '{print $1"+"$2"+"$3"+"$4"+"$5}'`
do
NAME=`echo $u|nawk -F+ '{print $2}'`
if [ -z `niscat passwd.org_dir|nawk -F: '{print $1}'|grep $NAME` ]
then
GROUP=`echo $u|nawk -F+ '{print $1}'`
NAME=`echo $u|nawk -F+ '{print $2}'`
COMENT=`echo $u|nawk -F+ '{print $3,$4,$5}'`
TMP=`/sbin/gen_pas`
PASS=`echo $TMP|nawk '{print $1}'`
CODE=`echo $TMP|nawk '{print $2}'`
echo ".\c"
while [ ! -z `niscat passwd.org_dir|nawk -F: '{print $3}'|grep $ID` ]
do
ID=`expr $ID + 1`
done
nistbladm -a key=$NAME value=$HNAME EXPHOME$NAME auto_home.org_dir > /dev/null
nistbladm -a name=$NAME passwd=$CODE uid=$ID gid=$GROUP gcos="$COMENT" shell=/bin/ksh home=/home/$NAME passwd.org_dir > /dev/null
nischmod w-r [name=$NAME],passwd.org_dir > /dev/null
nisaddcred -p $ID -P $NAME.$DNAME. -l $PASS local > /dev/null
nisaddcred -p unix.$ID@$DNAME -P $NAME.$DNAME. -l $PASS des > /dev/null
nischown $NAME [name=$NAME],passwd.org_dir > /dev/null
mkdir $EXPHOME$NAME
cp /etc/skel/.[a-z]* $EXPHOME$NAME
chown -R $NAME GROUP $EXPHOME$NAME
echo $GROUP $ID $NAME $PASS $COMENT >> passwd.txt
else
echo User $NAME exists >> error.log
fi
done
echo ""
echo " Look passwd.txt and error.log "
else
echo "addusers <file>"
echo "file format: gid login name1 name2 name3"
fi
else
echo "You isn't root"
fi
####end
ksh addusers.sh后提示:
addusers <file>
file format: gid login name1 name2 name3
于是:
addusers <list.txt>
报错: 'newline or ;' unexpected
list.txt正是按file format的格式写的
这个错误是脚本问题还是list.txt的问题? |
|