我正在处理将从中捕获日期(星期几)的脚本 系统,如果星期几是星期五,脚本将打印该消息 “任何消息”。 我想我的脚本中缺少一些语法
#!/bin/bash
input_source=date|awk '{print $1}'
if $input_source=Fri
then
echo 'It is Friday !!!!'
else
exit
fi
答案 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,没有子弹!