Unix 脚本:date 的使用和 for 的使用

Unix 脚本:date 的使用和 for 的使用

分钟现在= date +%M

for ((i=2;i<=57;i+=5))
do
        if [ "$MinuteNow" == "$i" ]; then
                *************
        fi
done

问题在于 2 和 7,日期命令输出是 02 和 07,但变量 $i 是 2 和 7...我试图添加一个条件来仅更改这 2 个,但它困扰着循环...

你能给我一点小费吗?

答案1

使用“-eq”来比较数字,那么您就不会遇到这个问题:

if [ "$MinuteNow" -eq "$i" ]; then

应该这么做。

(还有很多其他可能性,其中 ${MinuteNow#0} 是另一个简单的可能性,但我认为使用正确的运算符 -eq 而不是 == 是更好的选择)。

答案2

在 Bash 中,您需要将字符串强制转换为十进制:

if (( 10#$MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context

在 Bourne shell (sh) 中:

if [ $MinuteNow -eq $i ]

在 zsh 或 ksh93 中:

if (( MinuteNow == i ))    # you can omit the dollar sign on bare variables in this context

答案3

尝试

 [ $MinuteNow -eq $i ]

男人测试了解更多信息。

答案4

bash, 使用:

(($MinuteNow == $i))

例如:

如果(($MinuteNow == $i));那么

如果sh需要兼容性,使用:

[ “$MinuteNow” -eq “$i” ]

相关内容