例如:
passwd portal << EOF
portal
portal
EOF
注意所有的行都要靠左写,否则报错
方式一
useradd portal
passwd portal << EOF
portal
portal
EOF
if [ -d "/home/portal" ];then
rm -rf /home/portal
echo "delete folder portal!"
fi
mkdir /home/portal
c
hgrp users /home/portal
chown portal /home/portal
方式二(推荐)
useradd -d /home/portal -s /bin/bash -g users -m portal
passwd portal << EOF
portal
portal
EOF
echo "创建用户成功!"
精确查询:
username="portal"
user=`cat /etc/passwd |grep ^$username:`
(一)典型例子:root用户切换portal用户,执行配置文件,重启tomcat
父脚本:restartTomcat.sh
#!/usr/bin/ksh
#set -x
su $1 << EOF
bash ./startup.sh $1
EOF
if [ $? -eq 0 ] ; then
echo "startup tomcat successfully!"
else
echo "startup tomcat failed!"
fi
(使用EOF:现执行EOF中的每行命令,注意使用此时仍是root身份,遇到子脚本时,才切换su $1为portal,此时以portal身份执行那个子脚本startup.sh)
子脚本:startup.sh
source /home/$1/.bashrc
sh ${TOMCAT_HOME}/bin/startup.sh
exit $?
(这里将结果返回给父脚本)