bash脚本截断CentOS 5.5上的文件

时间:2010-11-15 10:13:37

标签: bash

方案如下

我在/ home / raveen中创建了一个文件test.txt,其中包含以下内容

FRUITS = apple guava banana
VEGETABLES = turnip onion spinach

我编写了一个脚本test.sh,内容如下

echo "FLOWERS = dahlia rose jasmine" >> /home/raveen/test.txt

执行此“bash”脚本后,文件被截断,只有内容

FLOWERS = dahlia rose jasmine 

出现文件test.txt

有谁知道这个的原因?有没有人见过这样的问题?

1 个答案:

答案 0 :(得分:0)

我不知道你的代码,但我可以保证以下内容可行。

cat | tee /home/raveen/test.txt <<EOF
FRUITS = apple guava banana
VEGETABLES = turnip onion spinach
EOF

echo 'FLOWERS = dahlia rose jasmine' | tee -a /home/raveen/test.txt

我更喜欢使用tee,因为像sed 's/a/e/g' test.txt > test.txt这样的东西不起作用,因为bash在执行命令之前打开test.txt,所以你最终得到一个空文件,而{{1会工作得很好。您也可以使用sed 's/a/e/g' test.txt | tee -a >/dev/null test.txt来静音T恤,我个人使用>/dev/null