当我编写该脚本并使用tyring来运行它时,它会说: 关于[[line == temp]]的意外文件结尾。 我试图从文件中读取行并删除文件中的所有重复。 cleanFiles删除所有空行
while read line; do
while read temp; do
if[[ line == temp ]]; then
temp=" ";
fi
done
./cleanLines $1
done
答案 0 :(得分:3)
您需要在if
之后添加空格。
if[[ line == temp ]]; then # wrong
if [[ line == temp ]]; then # still wrong, but see below
但仍然会比较文字字符串line
和temp
。如果要引用变量的值,则需要$
符号:
if [[ "$line" == "$temp" ]]; then # right
"$temp"
上的双引号阻止它被解释为glob模式;我还在"$line"
上添加了双引号,仅用于对称。
答案 1 :(得分:0)
嘿伙计们我得到的另一个问题 - 我是bash的新手,我需要合并几个文件,删除重复并按字母顺序对它们进行排序。我不允许使用临时文件。 CleanLines脚本做echo。我可以将它重定向到合并的脚本,然后再次重定向合并以删除重复,并在最后再次重定向到排序脚本。这是最简单的方法吗?