操纵一年中的某一天

时间:2016-01-20 14:25:25

标签: bash cron crontab

我想得到一年中的一天,然后减去一个然后换三个。它是一个在crontab中运行脚本的开关。

if (((date(%j) -1) %3))
 echo 'hello'
 exit()
else
 echo hi
fi

这只是为了测试它是否有效,但是我正在

./getdate.sh: line 4: syntax error near unexpected token `fi'
./getdate.sh: line 4: `fi'

对于你们中的一些人来说,这可能是微不足道的,但我仍然很不喜欢bash。

由于

1 个答案:

答案 0 :(得分:2)

以下是我认为你打算做的事情:

#!/bin/bash

if (( ( $(date +%-j) - 1 ) % 3 ))
then
  echo 'hello'
  exit
fi

echo hi
  • 始终使用shebang。

  • 执行date并使用它打印的内容将其封装在$()中。

  • 命令的参数,在本例中为date,只需遵循命令(和空格);没有括号。

  • date希望+为格式添加前缀。

  • %j将打印前导零,Bash将表示该数字为八进制。使用%-j无法获得此类零。

  • 我想你想在模数之前减去:使用括号进行排序。

  • if需要then

  • exit不应该有括号。

  • else之后无需exit