当前位置: 技术问答>linux和unix
菜鸟写shell script遇到问题,求大侠
来源: 互联网 发布时间:2016-10-30
本文导语: 各位大侠, 我在编写shell script时遇到个地方不会了,还请指教一下,我是编了一个abc.sh这样的文件,然后我现在想做的是如果输入abc.sh -f def(def为文件名)这样的话,就产生一个def.20101228这个文件,意思就是你在-f...
各位大侠, 我在编写shell script时遇到个地方不会了,还请指教一下,我是编了一个abc.sh这样的文件,然后我现在想做的是如果输入abc.sh -f def(def为文件名)这样的话,就产生一个def.20101228这个文件,意思就是你在-f后面输入一个文件名,然后这时就能产生一个新的你刚才输入的文件名加上今天的日期的文件,然后这个文件里的内容和abc.sh里的内容是一样的;如果你没有输入-f后面的文件名的话,就是产生默认的文件名,加上今天的日期,老师给我们示范的时候好像是用到了“->”还有">>",但是我还是不太懂,希望高人指教
|
大概就是参数$2
filename=${def.`date date +%y%m%d`}
然后if判断参数
filename=${def.`date date +%y%m%d`}
然后if判断参数
|
#!/bin/ksh
if [ $# -eq 2 ]
then
f=$2.`date +"%Y%m%d"`
elif [ $# -eq 1 ]
then
f="def".`date +"%Y%m%d"`
fi
cat abc.sh > $f
if [ $# -eq 2 ]
then
f=$2.`date +"%Y%m%d"`
elif [ $# -eq 1 ]
then
f="def".`date +"%Y%m%d"`
fi
cat abc.sh > $f
|
你不是执行的时候带参数吗。。
abc.sh -f name
abc.sh -f name
|
case $# in
2)
f=$2.`date +"%Y%m%d"`
;;
1)
f="def".`date +"%Y%m%d"`
;;
esac
cat abc.sh > $f
2)
f=$2.`date +"%Y%m%d"`
;;
1)
f="def".`date +"%Y%m%d"`
;;
esac
cat abc.sh > $f