意外的文件结束(脚本不起作用)

时间:2016-05-17 19:19:29

标签: bash

当我编写该脚本并使用tyring来运行它时,它会说: 关于[[line == temp]]的意外文件结尾。 我试图从文件中读取行并删除文件中的所有重复。 cleanFiles删除所有空行

while read line; do
    while read temp; do
        if[[ line == temp ]]; then
            temp=" ";
        fi
    done
./cleanLines $1
done

2 个答案:

答案 0 :(得分:3)

您需要在if之后添加空格。

if[[ line == temp ]]; then   # wrong
if [[ line == temp ]]; then  # still wrong, but see below

但仍然会比较文字字符串linetemp。如果要引用变量的值,则需要$符号:

if [[ "$line" == "$temp" ]]; then # right

"$temp"上的双引号阻止它被解释为glob模式;我还在"$line"上添加了双引号,仅用于对称。

答案 1 :(得分:0)

嘿伙计们我得到的另一个问题 - 我是bash的新手,我需要合并几个文件,删除重复并按字母顺序对它们进行排序。我不允许使用临时文件。 CleanLines脚本做echo。我可以将它重定向到合并的脚本,然后再次重定向合并以删除重复,并在最后再次重定向到排序脚本。这是最简单的方法吗?