在Bash中的for循环内使用if的算术比较运算符

时间:2018-11-16 20:17:29

标签: bash unix

我正在尝试在bash脚本中运行以下逻辑

  for i in {1..30}:
  do
  printf $i 
  if (( $i!=30 )); then
    printf ","
  fi
  done

经过数小时的Google搜索,我发现在if条件下,方括号[ ]用于字符串比较,而圆括号用于算术运算(( ))。我还发现-ne用于字符串,!=必须用于算术运算。

尽管尽了最大的努力,但我无法成功运行这种简单的逻辑,我需要运行30次循环并用逗号打印输出,但是在上一次迭代中跳过了逗号。

1 个答案:

答案 0 :(得分:1)

您只需在第一行花括号后删除冒号:

for i in {1..30}
do
  printf $i 
  if (( $i!=30 )); then
    printf ","
  fi
done

这会打印您想要的内容:

1,2,3,4,5,6,7,8,9,10,11,12,13,14,15,16,17,18,19,20,21,22,23,24,25,26,27,28,29,30