- 论坛徽章:
- 0
|
红袖姐请进
...
(不好意思,现在才又有空)
> 3。为什么我分别执行代码1和代码2时都能正确执行,而我就两段代码写到一起时不能正常
> 显示结果呢?(我将两段代码写到一起,然后用命令:
> ./con 20020401时就不能像两段代码分开执行时能运行出结果)
有可能是拷贝过程中出了差错,检查 EOF 后面有没有空格,有的话要删除.
> 4。我是想当我运行命令:./con 20020401 时,若时间20020401存在就以html的形式显示
> 包含20020401这一天的本周周一到周五的纪录(按升序),如不存在就将text.txt文件中的
> 所用纪录以html的形式显示(按日期和时间以升序排序)。
如果是要经常用到这个功能的话,可以做子函数,将来还可以方便调用,这样
- #!/bin/sh
- input=$1
- logfile='log.txt'
- TITLE="My page"
- txt2html() {
- cat <<EOF
- <HTML>
- <HEAD><TITLE>
- $TITLE
- </TITLE></HEAD>
- <BODY>
- <TABLE>
- EOF
- nawk -F";" '{
- print "<TR>"
- print "<TD>"$1"</TD>"
- print "<TD>"$2"</TD>"
- print "<TD>"$3"</TD>"
- print "<TD>"$4"</TD>"
- print "<TD><a href=\x22" $5 "\x22>"$5"</a>"
- print "<TD>"$6"</TD>"
- print "</TR>"
- } ' $1
- cat <<EOF
- </TABLE>
- </BODY>
- </HTML>
- EOF
- }
- yyyy=`echo $input | cut -c 1-4`
- mm=`echo $input | cut -c 5-6`
- dd=`echo $input | cut -c 7-8`
- datestr="$dd/$mm/$yyyy"
- grep "$datestr" $logfile > /dev/null
- if [ $? -ne 0 ]; then
- sort -n -t'/' +2 -3 +1 -2 +0 -1 $logfile > file.tmp
- else
- for date in `cal $mm $yyyy | grep -w "$dd" | awk '{print $2,$3,$4,$5,$6}'`;
- do
- grep "$date/$mm/$yyyy" $logfile
- done | sort -n -t'/' +2 -3 +1 -2 +0 -1 > file.tmp
- fi
- txt2html file.tmp && rm file.tmp
复制代码 |
|