bash脚本截断CentOS 5.5上的文件

bash脚本截断CentOS 5.5上的文件,bash,Bash,情况如下 我在/home/raven中创建了一个包含以下内容的test.txt文件 FRUITS = apple guava banana VEGETABLES = turnip onion spinach echo "FLOWERS = dahlia rose jasmine" >> /home/raveen/test.txt 我用下面的内容编写了一个脚本test.sh FRUITS = apple guava banana VEGETABLES = turnip onion

情况如下

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

FRUITS = apple guava banana
VEGETABLES = turnip onion spinach
echo "FLOWERS = dahlia rose jasmine" >> /home/raveen/test.txt
我用下面的内容编写了一个脚本test.sh

FRUITS = apple guava banana
VEGETABLES = turnip onion spinach
echo "FLOWERS = dahlia rose jasmine" >> /home/raveen/test.txt
执行此bash脚本后,文件将被截断,只有内容

FLOWERS = dahlia rose jasmine 
显示文件test.txt


有人知道原因吗?以前有人看到过这样的问题吗?

我不知道您的代码,但我可以保证下面的方法会起作用

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,所以最终会得到一个空文件,而sed's/a/e/g'test.txt | tee-a>/dev/null-test.txt可以正常工作。您也可以通过使用>/dev/null使tee静音,我个人使用别名stee=tee>/dev/null。

请发布您的bash代码,如果您在1中创建了文件,您将得到这种行为。没有准确地命名为test.txt,或者不完全在/home/raven.recheck中,并且100%确保>>您好Simone、Pascal和Ajreal,我能够用前面提到的一个名为test.txt的简单文件重现这个问题。这是在CentOS 5.5上完成的,我在一个名为test.sh的文件中只使用了一行代码。行是echo FLOWERS=dahlia rose jasmine>/home/raven/test.txt不要紧,实际的用例是,我有一个简单的shell脚本test.sh,内容是echo cp:5:respawn:/home/raven/notify>/etc/inittab,当root/etc/inittab也被截断时,我运行test.sh。拉文德兰五世,是巴什吗?还是你有/bin/sh作为第一行?