linux shell 代码求翻译! 新人不懂,求逐行翻译一下,尤其是最后一行,谢了
#!/bin/cshif($#argv!=0)thenechousage:$0exitendifsetyyyy=`date-u+%Y|awk'{printf("%4.4d...
#!/bin/csh
if($#argv !=0) then
echo usage:$0
exit
endif
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` 展开
if($#argv !=0) then
echo usage:$0
exit
endif
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` 展开
展开全部
if($#argv !=0) then
echo usage:$0
exit
endif
这几句是检查命令行参数是否为0个,如果不是0个则提示一下退出
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'`
设置了环境变量yyyy为命令行返回
date -u +%Y 返回年份 2015
后面awk这句会报错,好像没有啥用处
echo usage:$0
exit
endif
这几句是检查命令行参数是否为0个,如果不是0个则提示一下退出
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'`
设置了环境变量yyyy为命令行返回
date -u +%Y 返回年份 2015
后面awk这句会报错,好像没有啥用处
追问
前面几句, 检查命令行参数是否为0个,如果不是0个则提示一下退出,是怎么做到的?$#argv代表参数个数吗?
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'`
设置了环境变量yyyy为命令行返回 , 什么是命令行返回?
date-u+%Y是什么意思。。
都不懂,详细说下吧,谢了
追答
看一下:
#!/bin/bash #用bash执行,原来给的是c shell的脚本,有点生,我全部修改了
if [ "$#" -ne 0 ]; then #这句表示检查命令行参数个数 $#表示命令行参数个数 -ne 表示不等于判断
echo usage:$0 #echo 就是输出字符串,$0为脚本名字
exit #退出脚本
fi
yyyy=`date -u +%Y | awk '{printf("%4.4f",$1);}'` #date -u是输出格林威治时间,%Y是输出年,因此结果是2015。后面那个是输出一个浮点数,最终输出2015.0000
echo $yyyy #加了个打印
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
#!/bin/csh ——缺省使用csh执行脚本
if($#argv !=0) then ——判断是否有参数
echo usage:$0 ——如果有参数,输出使用说明,只有脚本名,无参数
exit ——退出
endif
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` —— 将年份值付给变量yyyy,不过这句有错误,少了个),并且没必要用后面的awk,printf里4.4d感觉也多余。。。
if($#argv !=0) then ——判断是否有参数
echo usage:$0 ——如果有参数,输出使用说明,只有脚本名,无参数
exit ——退出
endif
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` —— 将年份值付给变量yyyy,不过这句有错误,少了个),并且没必要用后面的awk,printf里4.4d感觉也多余。。。
更多追问追答
追问
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` date和u哪儿来的?%Y又什么意思啊。 awk '{printf("%4.4d",$1}'`,是干嘛,为什么没用啊。
set yyyy =`date -u +%Y | awk '{printf("%4.4d",$1}'` date和u哪儿来的?%Y又什么意思啊。 awk '{printf("%4.4d",$1}'`,是干嘛,为什么没用啊。
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询