Shell脚本 - 没有这样的文件错误

时间:2011-06-14 11:26:53

标签: shell

#!/bin/bash
local dept=0
while [ $n < 5 ]
do
  echo $n
  $n++
done

此代码返回错误7: cannot open 5: No such file 我应该在哪里改变?

3 个答案:

答案 0 :(得分:6)

您应该使用$n -lt 5。 Bash将<作为重定向读取,因此它会尝试打开名为5的文件并将其内容提供给名为$n的命令

这对我有用:

#!/bin/bash
n=0
while [ $n -lt 5 ]
do
  echo $n
  let n=$n+1
done

答案 1 :(得分:1)

#!/bin/bash
n=0
while [[ "$n" < 5 ]]
do
   echo $n
   ((n++))
done
~  

答案 2 :(得分:1)

大多数便携式(POSIX sh兼容)方式是:

#!/bin/sh -ef
n=0
while [ "$n" -lt 5 ]; do
    echo "$n"
    n=$(($n + 1))
done

注意:

  • "$n" - 如果$n未初始化,n周围的引号有助于防止丢失操作数错误。
  • [(AKA test)和-lt - 是一种安全且相当便于检查简单算术子句的方法。
  • $((...))是一种安全便携的算术扩展方式(即运行计算);请注意此扩展中的$n - 虽然bash允许您仅使用n,但标准且可移植的方式是使用$n