【问题标题】:Unexpected condition error in a ksh scriptksh 脚本中的意外条件错误
【发布时间】:2014-09-29 12:39:07
【问题描述】:

我是 ksh 编程的新手,想知道为什么以下代码不起作用:

#!/bin/ksh
set -A tables 44 45 46 47 48 49 50

for i in ${tables[@]}
  do
  if [[$i -eq 48 ]]; then
  echo "processing table${i}_Ge65"
  echo "processing table${i}_Lt65"
  fi
  echo "processing table${i}_A"
  echo "processing table${i}_B"
done

错误信息是

[[44: not found [No such file or directory]

对于数组中的每个数字。在我看来,ksh 将 $i 视为文件名而不是表达式。关于为什么以及如何解决此问题的任何建议?

谢谢,

彼得

【问题讨论】:

    标签: ksh


    【解决方案1】:

    [[ 后面缺少空格:

    if [[ $i -eq 48 ]]; then
    # ...^
    

    发生这种情况是因为[[ 实际上是一个命令,而不仅仅是语法,并且与任何其他命令一样,需要一个空格来将命令与参数分开。

    【讨论】:

      猜你喜欢
      • 2014-04-05
      • 2012-10-09
      • 1970-01-01
      • 1970-01-01
      • 2015-01-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2019-07-31
      相关资源
      最近更新 更多