在UNIX中的FOR循环中使用IF ELSE语句

时间:2016-02-25 03:25:04

标签: unix if-statement for-loop

我试图在FOR循环中使用IF / ELSE语句来生成两个输出文件: count1,数字1-5; count2,数字6-10

我正在尝试

for i in {1..10}
do
        if [ $i -le 5 ]
        then
                echo $i > count1.out
        else
                echo $i > count2.out
        fi
done

但是count1只有" 5"在它和count2显示" 10"

我该如何解决这个问题?

2 个答案:

答案 0 :(得分:1)

使用>重定向到文件会替换文件的全部内容。 您实际想要做的是附加到文件,您可以使用>>执行此操作:

echo "hello " > somefile.out # replace the contents of whatever is in somefile.out
echo "world!" >> somefile.out # append more stuff to somefile.out

此处有更多信息:https://www.gnu.org/software/bash/manual/html_node/Redirections.html

答案 1 :(得分:1)

您正在使用truncate-redirect运算符>

您可能打算使用附加重定向运算符>>

Consider reading up on BASh I/O redirection in general.了解shell脚本对您有很大帮助。