我正在编写部署脚本并遇到了一个奇怪的问题...
ian@baster:~$ sudo echo "Build: "$REVISION" - Deployed: "$(date +%Y-%m-%d) > /home/www/prod/www/revision.html
-bash: /home/www/prod/www/revision.html: Permission denied
但是...
root@baster:~# echo "Build: "$REVISION" - Deployed: "$(date +%Y-%m-%d) > /home/www/prod/www/revision.html
root@baster:~# more /home/www/prod/www/revision.html
Build: - Deployed: 2011-01-28
...然后
ian@baster:~$ sudo ls -l /home/www/prod/www
total 28
-rw-r--r-- 1 root root 31 2011-01-28 21:56 revision.html
ian@baster:~$ sudo more /home/www/prod/www/revision.html
Build: - Deployed: 2011-01-28
这是什么交易?
答案 0 :(得分:3)
通常的方法是使用tee
:
echo "foo" | sudo tee filename
您可以将输出抑制到tee
这样的屏幕:
echo "foo" | sudo tee filename >/dev/null
答案 1 :(得分:2)
echo
以root身份运行,但不是重定向。在sudo子shell中运行重定向。