acctmod-cvs.sh

本文介绍了一个使用Shell脚本来验证电子邮件地址格式正确性的示例,并通过检查确保输入参数的存在及格式的有效性。该脚本还演示了如何从电子邮件地址中提取用户名和域名部分。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

#!/bin/sh

if [ "$1" = "" ]; then exit 1 ; fi 
if [ "$2" = "" ]; then exit 1 ; fi 
c1=`expr index $1 "@"` 
if [ $c1 = 0 ]; then exit 1 ; fi 
c2=`expr index $2 "@"` 
if [ $c2 = 0 ]; then exit 1 ; fi

n1=$1 
n2=`echo ${n1##*@}` 
if [ "$n2" = "***.cn" ] 
then 
n3=`echo ${n1%%@*}` 
else 
n3=`echo ${n1/@/.}` 
fi

n4=$2 
n5=`echo ${n4/@/.}` 
n6=`echo ${n4##*@}` 
if [ "$n6" = "***.cn" ] 
then 
exit 1 
fi

SAVEIFS=$IFS 
IFS=" 
"

cou1=`find /cvsroot/ -name passwd -follow -exec grep -q ^$n3: {} ; -print` 
if [ -n "$cou1" ] 
then 
for f in $cou1 
do 
echo "cvs: copy $n3 -> $n5" 
echo $f 
g=`grep ^$n3: $f` 
i=`echo ${g/$n3:/$n5:}` 
grep -q ^$i$ $f 
if [ $? -ne 0 ] 
then 
sed -i.bak "/^$n5:/d" $f 
sed -i.bak "/^$n3:/ a $i" $f 
fi

f2=`echo ${f%/*}`/group 
echo $f2 
cou2=`grep -E "(:|,)$n3(,|$)|(:|,)$n5(,|$)" $f2` 
if [ $? = 0 ] 
then 
perl -i.bak -lape '{s/(:|,)'"$n5"'(,|$)/$1/;s/,$//;if(m/(:|,)'"$n3"'(,|$)/){$_.=",'"$n5"'"}}' "$f2" 
fi 
done 
fi

IFS=$SAVEIFS

转载于:https://my.oschina.net/tadcat/blog/149850

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值