答案 0 :(得分:28)
答案 1 :(得分:3)
有时打破Perl机箱对于这些单行程序来说是个好方法:
for d in 1 2 ; do cat kk2 | perl -lne ' print "'"${d}"': OK" if /hdisk'"${d}"'\s+/';done
答案 2 :(得分:2)
答案 3 :(得分:2)
答案 4 :(得分:1)
答案 5 :(得分:0)
答案 6 :(得分:0)
我的解决方案有点不同。我通过谷歌搜索问题的标题,但我试图执行不同的东西。这是为了以防万一:
仅供参考,我在Solaris上使用tcsh。
我有以下单行:
perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d", localtime(time()-3600*24*2));'
输出值:
2013-05-06
我试图将其放入shell脚本中,因此我可以创建一个文件名中包含日期为X天的文件。我试过了:
set dateVariable=`perl -e 'use POSIX qw(strftime); print strftime("%Y-%m-%d", localtime(time()-3600*24*$numberOfDaysPrior));'`
但由于变量替换,这不起作用。我不得不乱用报价,让它正确地解释它。我尝试将所有内容用双引号括起来,但是这使得Perl命令在语法上不正确,因为它与日期格式周围的双引号混淆。我完成了:
set dateVariable=`perl -e "use POSIX qw(strftime); print strftime('%Y-%m-%d', localtime(time()-3600*24*$numberOfDaysPrior));"`
这对我来说非常有用,无需借助任何奇特的变量导出。
我意识到这并没有完全回答你的具体问题,但它回答了标题并可能帮助其他人!