需要帮助了解bash语法

时间:2018-08-24 14:07:28

标签: bash while-loop

我试图更好地理解bash语法,并且需要while循环一些帮助:

以下脚本有效:

#!/bin/bash
#
counter=2
mystring=testdir
while [ $counter -le 5 ]; do
  echo Making dir $mystring$counter
  mkdir $mystring$counter
  ls *.slurm > $mystring$counter/testfile.$counter.slurm
  counter=$((counter+1))
done

问题1:什么是-le? Google似乎并没有帮助,向我显示任何带有'linux'字样的页面

我从字面上复制了while手册的以下形式,但它不起作用:

#!/bin/bash
 set x 0
 while {$x<10} {
 puts "x is $x"
 incr x
}

#test3.sh: line 6: syntax error near unexpected token `}'
#test3.sh: line 6: `}'

问题2:我在做什么错?谢谢您的关注:)

2 个答案:

答案 0 :(得分:2)

[test内置函数的同义词,而-le是可能的测试之一,小于或等于。在bash中尝试此操作以获取更多详细信息:

help [
help test

重新。您的第二个问题,它看起来根本不像bash语法。

答案 1 :(得分:2)

  

-le是什么?

它的意思是“小于或等于”。

  

我在做什么错了?

几乎所有内容。您的脚本在bash中应该看起来像这样

x=0
while [ $x -lt 10 ]; do
    echo "x is $x"
    ((x++))
done

我认为您确实应该阅读bash手册。