|
因为是刚学习写脚本,所以搞了一整天才写完下面一个很简单的脚本,有两个问题要问:
1.如何在脚本里接受指定的参数,比如命令行是fputc -u "user01" -p "123",如何在脚本中检测u和p参数的值.
2.如何在脚本中检测一个命令是否完成,比如脚本里包含一个上传文件的命令(这个命令可能要运行一段时间),那如何同时继续脚本的执行,当上传命令完成时,脚本可以自动检测到!
[php]#!/bin/bash
function Usage(){
echo -e "\tUsage: fputd ldir [rdir] "
echo -e "\tUpload local files in local directory to remote directory".
echo -e "\tReport bugs to <chenzenlei@yeah.net>."
exit 0
}
function PutDirFilesToFtp() {
for lf in `ls` ;do
[ -h $lf ] && continue
if [ -f $lf ];then
echo "mput $lf" >>/tmp/$fn
elif [ -d $lf ];then
echo "lcd $lf" >>/tmp/$fn
echo "mkdir $lf">>/tmp/$fn
echo "cd $lf">>/tmp/$fn
cd $lf
PutDirFilesToFtp
echo "lcd ..">>/tmp/$fn
echo "cd ..">>/tmp/$fn
cd ..
fi
done
}
fn=`date +%F-%H-%M-%S`
myftp="*.*.*.*"
user="qj"
password="123"
cat >/tmp/$fn<<EOF
#!/bin/bash
ftp -n $myftp 1>/dev/null <<END
user $user $password
binary
prompt
cd /wwwroot
EOF
if ! [ -z $2 ];then
echo "mkdir $2">>/tmp/$fn
echo "cd $2">>/tmp/$fn
fi
[ $# -eq 0 ] && Usage
[ $1 == "--help" ] && Usage
if ! [ -d $1 ];then
echo "$1 :No such directory"
Usage
else
cd $1
PutDirFilesToFtp
fi
echo "bye">>/tmp/$fn
echo "END">>/tmp/$fn
chmod +x /tmp/$fn
/tmp/$fn
rm -f /tmp/$fn[/php] |
|