当前位置: 技术问答>linux和unix
急用:谁帮我写一个crontab的SHELL脚本?找到一个匹配文件后执行一个程序来发送之
来源: 互联网 发布时间:2015-10-28
本文导语: 我的想法是定时查找匹配的文件(要求支持通配符*?) 现在有一个程序的用法是: program [server] [port] [user] [pwd] [localfile] [targetfile] 其中前4个参数可以设定好,localfile为匹配的文件名,如设定为 /usr/program/*.log ...
我的想法是定时查找匹配的文件(要求支持通配符*?)
现在有一个程序的用法是:
program [server] [port] [user] [pwd] [localfile] [targetfile]
其中前4个参数可以设定好,localfile为匹配的文件名,如设定为 /usr/program/*.log
远程文件则为本地文件名,不带本地路径名称,但是可能加了远程路径,如c:
我的假想是这样
5 * * * * * .....
if(FindFile($path/$file))
{
program 127.0.0.1 5555 usr1 111111 $path/$file c:$file
}
汗,这事完了一定认真的学习SHELL,请会的帮个忙吧
现在有一个程序的用法是:
program [server] [port] [user] [pwd] [localfile] [targetfile]
其中前4个参数可以设定好,localfile为匹配的文件名,如设定为 /usr/program/*.log
远程文件则为本地文件名,不带本地路径名称,但是可能加了远程路径,如c:
我的假想是这样
5 * * * * * .....
if(FindFile($path/$file))
{
program 127.0.0.1 5555 usr1 111111 $path/$file c:$file
}
汗,这事完了一定认真的学习SHELL,请会的帮个忙吧
|
对于bash来讲,通配符很容易处理,因为参数传进来的时候已经处理好了通配符, 比如下面的例子, 参数给的是(注意加上双引号)
./test.sh "/tmp/*"
显示结果是所有文件
#!/bin/bash
echo $1
for file in $1
do
echo $file
done
至于远端参数, 建议你只用一个目录就可以了
./test.sh "/tmp/*"
显示结果是所有文件
#!/bin/bash
echo $1
for file in $1
do
echo $file
done
至于远端参数, 建议你只用一个目录就可以了
|
name=`basename $file` 注意这个不是单引号,是tab键上面那个反引号。