6.1

今天是儿童节,我像小盆友一样发现了php和html混合的时候如何进行参数传递:
<?php $idate=date('Ymd');include("./check_job_detail.php");?>
这样,php里就认识了$idate
另:php里字符串作时间加法,一个好办法是通过时间来中转,如
$idate=20090601;
$idate_end=date("Ymd",strtotime($idate)+24*3600);
那么idate_end就等于了20090602

下午写了个java执行程序的脚本,因为要引用外部包,比如执行jar包A,A的代码中又引用了B.jar
这样的话,就要在-cp参数中同时包含A,B
即java -cp A:B xxx
当B很多时,最好搞个脚本来执行,脚本大概就这么写:
#! /bin/bash
CWD=`dirname $0`
cd $CWD
cd ..
cur_path=`pwd`
JARPATH=$cur_path"/A.jar"
LIBDIR=$cur_path"/lib/"
find $LIBDIR -name "*.jar" > "tmp"
new=$JARPATH`cat "tmp"|while read LINE
do
  echo ":"$LINE
done`
rm "tmp"
cppath=`echo $new|tr -d ' '`

COMMAND=$1
if [ -z $COMMAND ];then
  echo "Usage: scheduler_start [COMMAND]"
  echo "where COMMAND is one of:"
  echo "  -job         run the job"
  echo "  -plan        run the plan"
  echo "  -monitor     run the monitor"
  echo "and please check the path to make sure start and the other lib in the right path!"
  exit 1
fi

if [ $COMMAND == "-job" ];then
  java -cp $cppath mypath.job
elif [ $COMMAND == "-plan" ];then
  java -cp $cppath mypath.plan
elif [ $COMMAND == "-monitor" ];then
  java -cp $cppath mypath.monitor $2
elif [ $COMMAND == "-help" ];then
  echo "scheduler_start -job/-plan/-monitor"
else
  echo "Usage: start [COMMAND]"
  echo "where COMMAND is one of:"
  echo "  -job         run the job"
  echo "  -plan        run the plan"
  echo "  -monitor     run the monitor"
  echo "and please check the path to make sure start and the other lib in the right path!"
  exit 1
fi

注意两点:
1 为了能在任何目录下运行,因此程序开头要用dirname来获取脚本所在的路径。注意这里用pwd是不行的,估计原因是pwd是获取当前目录
2 如果有多个包,把它们从文本里复制到一个变量后,中间会有很多空格,一定要去掉这些空格,否则会影响后面的参数列表

晚上在搞log4j,明天早上争取测试成功

顺便打个广告:看了会unix编程艺术这本书,相当的赞,确实把设计提高到了哲学的高度来进行抽象,很多道理一抽象出来就很真实了,比如:
    永远不要去吃力解读一段晦涩的代码三次。第一次也许侥幸成功,但如果发现必须重新解读一遍--离第一次太久了具体细节无从回想--那么你该注释代码了,这样第三次相对不会那么痛苦了。
    原则:你无法断定程序会在什么地方耗费运行时间。瓶颈经常会出现在想不到的地方,所以别急于胡乱找个地方改代码,除非你己证实那儿就是瓶颈。
    让每个程序就做好一件事。如果有新任务,就重新开始,不要往原程序中加入新功能而搞得复杂。

    ...慢慢继续看

你可能感兴趣的:(编程,PHP,log4j,脚本,bash)