Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/18.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
bash:while循环中的语法错误_Bash_Input_While Loop_Syntax_Command - Fatal编程技术网

bash:while循环中的语法错误

bash:while循环中的语法错误,bash,input,while-loop,syntax,command,Bash,Input,While Loop,Syntax,Command,因此,在bash脚本中,有一个while循环,从一些pippelined sort命令的输出中读取行。我得到一个错误:第13行:意外标记“完成”附近的语法错误 第13行是最后一行,这里是“完成”和管道。我的剧本: #!/bin/bash while read -a line; do if [[ ${line[2]} < $1 ]]; then continue fi if [[ $2 != -MM ]]; then if [[ ${line[3]} = N ]

因此,在bash脚本中,有一个while循环,从一些pippelined sort命令的输出中读取行。我得到一个错误:第13行:意外标记“完成”附近的语法错误 第13行是最后一行,这里是“完成”和管道。我的剧本:

#!/bin/bash

while read -a line; do
  if [[ ${line[2]} < $1 ]]; then
    continue
  fi
  if [[ $2 != -MM ]]; then
    if [[ ${line[3]} = N ]]; then
        continue
    fi
  fi
  echo -n "${line[0]} "
  echo ${line[1]}
  done < <(sort -b rooms | sort -sk2 | sort -sk4 | sort -sk3)
#/bin/bash
读的时候——一行;做
如果[${line[2]}<$1]];然后
持续
fi
如果[$2!=-MM]];然后
如果[${line[3]}=N]];然后
持续
fi
fi
echo-n“${line[0]}”
echo${line[1]}

完成<您可以不使用
()


done

我会首先尝试将日期写入temp,这样我可以通过检查temp文件来查看排序正在做什么。然后逐行读

#!/usr/bin/env bash

TMPF="/tmp/tmp-file.dat"
sort -b rooms | sort -sk2 | sort -sk4 | sort -sk3 > "${TMPF}"

while IFS= read -r line ;do
  if [[ ${line[2]} -ge $1 ]] && [[ $2 != -MM ]] && [[ ${line[3]} = N ]]; then
    echo -n "${line[0]} "
    echo ${line[1]}
  fi
done < "${TMPF}"
#/usr/bin/env bash
TMPF=“/tmp/tmp file.dat”
sort-b房间| sort-sk2 | sort-sk4 | sort-sk3>“${TMPF}”
而IFS=读取-r行;做
如果[${line[2]}-ge$1]&&[$2!=-MM]&&[${line[3]}=N]];然后
echo-n“${line[0]}”
echo${line[1]}
fi
已完成<“${TMPF}”

这做了一些完全不同的事情。语法在我看来还行(对于bash,而不是其他shell,所以不要使用
sh scriptname
运行它)。脚本是否可能有DOS/Windows行结尾?