while 循环中意外的标记“完成”

while 循环中意外的标记“完成”

我想知道这个 bash srcipt 中的语法错误是什么

#!/bin/bash
CURRENT=1594184400
while true do
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

我得到的

syntax error near unexpected token `done'

错误?

答案1

true您要么需要在第二行后面加一个分号,要么do单独添加下一行。

要么这个:

#!/bin/bash
CURRENT=1594184400
while true; do     
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

或这个:

#!/bin/bash
CURRENT=1594184400
while true 
do
  NEXT=$((CURRENT+300))
  CURRENT=$NEXT
done

您可以在此处检查 shell 脚本是否有错误:

https://www.shellcheck.net/

您还可以bash -n script在终端上运行来检查是否有错误。

相关内容