我对bash脚本还很陌生,我编写了以下脚本来读取文本文件,使用if语句运行while循环,然后将所需的数据写入另一个文本文件。
#!/bin/bash
#
#
#
variable1=0
variable2=0
variable3=0
variable4=0
cat input.txt | while read Column1 Column2 Column3
do
if ["$Column1" = variable2]; then
if ["$Column2" > variable3 && "$Column2" < variable4]; then
if ["$Column3" > variable4]; then
variable4="$Column3"
continue
fi
else
echo variable1 variable2 variable3 variable4
variable1++
variable3="$Column2"
variable4="$Column3"
fi
else
echo variable1 variable2 variable3 variable4
variable1++
variable2="$Column1"
variable3="$Column2"
variable4="$Column3"
fi
done>output.txt
但是,当我运行脚本时,出现以下错误消息:
./code.sh: line 31: syntax error near unexpected token `done'
'/code.sh: line 31: `done>output.txt
如果有人可以帮助我,我将非常感谢!
答案 0 :(得分:0)
我不知道您想做什么,但是在bash中有很多事情可能会失败,我发布了经过测试的版本。
p.s。我被批评该代码是图片:))在这里,您可以将其用于复制粘贴
#!/bin/bash
let variable1=0
let variable2=0
let variable3=0
let variable4=0
cat input.txt | while read Column1 Column2 Column3
do
if [ "x$Column1" == "x$variable2" ]; then
if [ "x$Column2" -gt "x$variable3" ] && [ "x$Column2" -lt "x$variable4" ]; then
if [ "x$Column3" -gt "x$variable4" ]; then
let variable4=$Column3
continue
fi
else
echo $variable1 $variable2 $variable3 $variable4
let "variable1 += 1"
let variable3=$Column2
let variable4=$Column3
fi
else
echo $variable1 $variable2 $variable3 $variable4
let "variable1 += 1"
let variable2=$Column1
let variable3=$Column2
let variable4=$Column3
fi
done > output.txt