1

I have a problem trying to write the output of a shell command to a file.

This works

cssbeautify basket.css > file.css

This doesn't. basket.css has now no content

cssbeautify basket.css > basket.css

Is that a normal behavior? How to get around it?

Edit: Here is the command I'm using to beautify all the files in the folder. You might find it useful.

for f in *;
do cssbeautify $f > temp_file && mv temp_file $f;
done
4

2 回答 2

4

您不能将文件用作“模式”并重定向到它。

使用例如:

cssbeautify basket.css > temp_file && mv temp_file basket.css

它将创建一个temp_file和 - 如果第一个命令成功运行 - 然后将其覆盖为basket.css.

于 2013-11-11T09:45:07.840 回答
2

cssbeautify 从 读取basket.css、美化它并写入到STDOUT.

通过使用> basked.css您指示 shell 将输出写入basked.css. 在此之前,文件内容被清除。cssbeautify 因此读取一个空文件并输出一个空文件。

所以是的,这是正常行为。您可以写入一个临时文件,mv然后再写入。

于 2013-11-11T09:48:28.937 回答