我想得到一年中的一天,然后减去一个然后换三个。它是一个在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。
由于
答案 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
。