LinuxSir.cn,穿越时空的Linuxsir!

 找回密码
 注册
搜索
热搜: shell linux mysql
查看: 879|回复: 6

麻烦高手帮我看一个程序!

[复制链接]
发表于 2004-7-27 11:00:37 | 显示全部楼层 |阅读模式
这是一个自动的取数据文件后并录入数据库的程序,因为我是linux新手,希望有高手帮我看看并分析分析里面的原理和相关命令,最好能逐句解释说明一下,不胜感激了!

#!/bin/sh
rsyyearmonthday=$rsyymd
export rsyyearmonthday
until [ "$cr" -eq 0 -a "$csh" -eq 0 -a "$smr" -eq 0 -a "$pdscp" -eq 0 ]
do
if [ ! -f $HOME/files/siemens/callrecord/siemens_crlist${rsyyearmonthday}_20.txt.gz ]; then
        cr=1
else
        cr=0
fi
if [ ! -f $HOME/files/siemens/csh/siemens_cshlist${rsyyearmonthday}_20.txt.gz ]; then
        csh=1
else
        csh=0
fi
if [ ! -f $HOME/files/siemens/smr/siemens_smrlist${rsyyearmonthday}_20.txt.gz ]; then
        smr=1
else
        smr=0
fi
if [ ! -f $HOME/files/siemens/pdscp/siemens_pdscplist${rsyyearmonthday}_20.txt.gz ]; then
        pdscp=1
else
        pdscp=0
fi

if [ "$cr" -eq 1 -o "$csh" -eq 1 -o "$smr" -eq 1 -o "$pdscp" -eq 1 ]; then
echo passive > /tmp/ftp_cmd
echo prompt >> /tmp/ftp_cmd
echo cd siemens/callrecord  >> /tmp/ftp_cmd
echo lcd files/siemens/callrecord >> /tmp/ftp_cmd
if [ "$cr" -eq 1 ]; then
echo get siemens_crlist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo cd ../csh >> /tmp/ftp_cmd
echo lcd ../csh >> /tmp/ftp_cmd
if [ "$csh" -eq 1 ]; then
echo get siemens_cshlist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo cd ../smr >> /tmp/ftp_cmd
echo lcd ../smr >> /tmp/ftp_cmd
if [ "$smr" -eq 1 ]; then
echo get siemens_smrlist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo cd ../pdscp >> /tmp/ftp_cmd
echo lcd ../pdscp >> /tmp/ftp_cmd
if [ "$pdscp" -eq 1 ]; then
echo get siemens_pdscplist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo bye >> /tmp/ftp_cmd

ftp 211.96.31.234 2121 < /tmp/ftp_cmd

if [ "$cr" -eq 1 ]; then
        $HOME/input/p_siecall.sh $rsyyearmonthday
fi
if [ "$csh" -eq 1 ]; then
        $HOME/input/siecsh.sh $rsyyearmonthday
fi
if [ "$smr" -eq 1 ]; then
        $HOME/input/siesmr.sh $rsyyearmonthday
fi
echo cd ../smr >> /tmp/ftp_cmd
echo lcd ../smr >> /tmp/ftp_cmd
if [ "$smr" -eq 1 ]; then
echo get siemens_smrlist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo cd ../pdscp >> /tmp/ftp_cmd
echo lcd ../pdscp >> /tmp/ftp_cmd
if [ "$pdscp" -eq 1 ]; then
echo get siemens_pdscplist${rsyyearmonthday}_20.txt.gz >> /tmp/ftp_cmd
fi
echo bye >> /tmp/ftp_cmd

ftp 211.96.31.234 2121 < /tmp/ftp_cmd

if [ "$cr" -eq 1 ]; then
        $HOME/input/p_siecall.sh $rsyyearmonthday
fi
if [ "$csh" -eq 1 ]; then
        $HOME/input/siecsh.sh $rsyyearmonthday
fi
if [ "$smr" -eq 1 ]; then
        $HOME/input/siesmr.sh $rsyyearmonthday
fi
if [ "$pdscp" -eq 1 ]; then
        $HOME/input/siepdscp.sh $rsyyearmonthday
fi
fi
echo "${rsyyearmonthday}  ftp successful and sleep 600!"
sleep 600
done
echo "${rsyyearmonthday}  input all successful!"
发表于 2004-7-27 14:43:26 | 显示全部楼层
我倒
 楼主| 发表于 2004-7-27 14:53:57 | 显示全部楼层
不要倒啊,帮帮忙!!
发表于 2004-7-27 16:26:57 | 显示全部楼层
这应该是个自动备份的script吧.
发表于 2004-7-27 16:32:13 | 显示全部楼层
通过命令交互构造ftp的非交互命令文件,然后执行ftp命令进行数据上传。
其实很多脚本都起到粘合剂的作用,把一个又一个的小巧的二进制可执行命令按任务所需,粘合起来,目的是提供一个友好的用户接口。adsl-setup或者pppoeconf就是这种工具哲学的体现。
 楼主| 发表于 2004-7-27 16:40:35 | 显示全部楼层
我是希望能详细点给我逐句分析以上的语句并能用文字描述出来……
发表于 2004-7-27 18:26:29 | 显示全部楼层
最初由 erldy 发表
我是希望能详细点给我逐句分析以上的语句并能用文字描述出来……

看看置顶的shell入门教程吧~~~~,都是简单的判断,输出重定向!
您需要登录后才可以回帖 登录 | 注册

本版积分规则

快速回复 返回顶部 返回列表