Bash脚本从Unix中获取日期

时间:2013-06-06 02:03:27

标签: bash unix

我正在处理将从中捕获日期(星期几)的脚本 系统,如果星期几是星期五,脚本将打印该消息 “任何消息”。 我想我的脚本中缺少一些语法

#!/bin/bash
input_source=date|awk '{print $1}'
if $input_source=Fri
then
  echo 'It is Friday !!!!'
else
  exit
fi

4 个答案:

答案 0 :(得分:2)

你的剧本,重新发布

#!awk -f
BEGIN {
  if (strftime() ~ /Fri/)
    print "It is Friday!"
}

答案 1 :(得分:1)

您需要告诉shell执行命令,然后将其输出存储在变量中:

input_source=$(date|awk '{print $1}')

您还需要将测试括在方括号中:

if [ $input_source = Fri ]

答案 2 :(得分:0)

命令输出应该用``或$()

包围

bash中的比较应该由[完成。您可以man [了解更多详情。

$ input=`date | awk '{print $1}'`
$ echo $input
Thu
$ if [ $input=Thu ]; then   echo 'It is Thursday !!!!'; else   exit; fi
It is Thursday !!!!

答案 3 :(得分:0)

如果您足够幸运,Bash≥4.2,那么您可以使用printf' %(...)T修饰符:

printf '%(%u)T\n' -1

将在今天的工作日打印(1 =星期一,2 =星期二等)。请参阅man 3 strftime以获取支持的修饰符列表,以及关于%(...)T的Bash参考手册。

因此:

#!/bin/bash

printf -v weekday '%(%u)T' -1

if ((weekday==5)); then
    echo 'It is Friday !!!!'
else
    exit
fi

Pure Bash,没有子弹!