簡體   English   中英

Bash腳本從Unix獲取日期

[英]Bash script to awk the date from Unix

我正在使用將從系統捕獲日期(星期幾)的腳本,如果星期幾是星期五,腳本將打印消息“ Any message”。 我想我的腳本中缺少一些語法

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

您的腳本,重新出現

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

您需要告訴shell執行命令,然后將其輸出存儲在變量中:

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

您還需要將測試括在方括號中:

if [ $input_source = Fri ]

命令輸出應用``或$()括起來

bash的比較應該由[ 您可以man [更多信息。

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

如果您很幸運能夠達到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

純Bash,無子彈!

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM