- 论坛徽章:
- 0
|
1、请分享你是如何学习bash shell的?入门主要看过哪些书?
------------都是上网搜集相关资料阅读,边看边上机测试,时间久了,自然会明白一些基础。
2、请分享你在工作当中编写过的一个shell脚本实例。
------------用perl、bash、expect结合,附:
#!/usr/bin/bash
choose=$1
phone_number=$2
#phone_number_len=`echo "${phone_number}" | awk '{print length($1)}'`
function check_sgsn_subscriber ( )
{
local choose=$1
cmd="/home/bb/bin/etc/sgsn_subscrib.exp"
echo "$ip $phone_number $1 $sgsn $cmd" | perl -ane '{
@tmp=qx($F[4] $F[0] $F[1] $F[2] | tr -d "\r");
foreach my $check (@tmp) {
if($check =~ /IMSI/) {
#printf ("%-15s%-3s%-11s%-5s%-5s%-20s%-20s\n",$F[1],"is","registered","in","the",$F[3],$F[0]);
system("printf \"\033[42;36;1m$F[1]\tis\tregistered\tin\tthe\t$F[3]\t$F[0]\033[0m\n\"");
open A, ">$F[3].txt";
print A "@tmp\n";
close A;
} elsif($check !~ /IMSI/) {
$c++;
if($c == @tmp){
printf ("%-20s%-8s%-8s%-15s%-8s%-8s%-20s%-20s\n",$F[1],"is","not","registered","in","the",$F[3],$F[0]);
}
}
}
}'
}
function thread_sgsn_subsciber ( )
{
local choose=$1
SEND_THREAD_NUM=20
fifofile="$$.fifo"
mkfifo "$fifofile"
exec 8<>"$fifofile"
rm $fifofile
for (( i=0;i<$SEND_THREAD_NUM;i++ ))
do
echo
done >&8
while read sgsn ip
do
read -u8
{
check_sgsn_subscriber $1
echo >&8
}&
done < /home/bbt/bin/sgsnifo.txt
wait
exec 8>&-
}
if [ "$choose" = "-m" ];then
# if [ ${phone_number_len} -eq 13 ];then
thread_sgsn_subsciber msisdn
# else
# printf "${phone_number} is wrong,please input right phone number\n"
# fi
elif [ "$choose" = "-i" ];then
thread_sgsn_subsciber imsi
else
echo "usage as below:"
echo "sgsn_subscriber_check.bash -m 86139xxxxxxxx (get msisdn subscribed information)"
echo "sgsn_subscriber_check.bash -i 4600xxxxxxxxxxx (get imsi subscribed information)"
fi
3、对于新手编写shell脚本应该注意哪些方面?
-----------夯实基础,基础大牢,编写简单点的shell脚本其实很不难。
4、在工作当中,shell脚本主要运用在哪些方面?
-----------自动化运维,提升效率、优化工作。
5、shell板块最活跃的两种文本处理工具sed和awk,各位CU大牛畅谈下运用经验吧。
-----------sed用的比较少,awk用的还算一般,工作上一般都是awk、perl命令行的结合。 |
|