我可以做到
SELECT * FROM Table WHERE COALESCE(Status, 0) IN (0, 3)
但是我做不到:
echo -e "foo\nbar" >> foobar
如果我尝试
echo -e "protected" >> foobar
sudo chown root:root foobar
sudo echo -e "foo\nbar" >> foobar
-bash: foobar: Permission denied
我在文件中得到sudo sh -c 'echo -e "foo\nbar" >> toto'
答案 0 :(得分:4)
在sh
手册页中:
用单引号引起来的字符保留了字面值 引号中的每个字符。单引号可能不会出现 在单引号之间,即使前面加上反斜杠也是如此。
尝试:
sudo sh -c "echo -e \"foo\nbar\" >> toto"
答案 1 :(得分:1)
如果您有完整的sudo
,则可以选择另一种方法-基本上是做同样的事情。
有时候有选择会很好。
echo 'printf "%s\n" foo bar >> toto' | sudo su
将命令printf "%s\n" foo bar >> toto
插入sudo su
的标准位置,默认为root
。添加用户后,您可以执行任何操作。
答案 2 :(得分:1)
您可以自己打印数据,并使用sudo附加到文件:
printf '%s\n' foo bar | sudo tee -a foobar