sudo heredoc:bash:警告:第0行的here-document以文件结尾分隔(需要`EOF ... EOF')

时间:2019-03-22 21:07:23

标签: bash sudo heredoc

我的目标是使用sudo将内容写到另一个用户的xstartup文件中。

但是我的尝试...

sudo -iu user1 bash -lic 'cat > ~/.vnc/xstartup <<\EOF
...
EOF'

...导致...

bash: warning: here-document at line 0 delimited by end-of-file (wanted `EOF...EOF')

但是嵌套的heredocs仍然有效...

sudo -iu user1 bash -s <<\OUTER
cat > ~/.vnc/xstartup <<\EOF
...
EOF
OUTER

有没有建议在不嵌套heredocs的情况下完成sudo重定向的建议?

1 个答案:

答案 0 :(得分:2)

您有很多不必要的图层。

if cause := foo(bar, obj); cause != nil {
    err := l.fixup(obj)
    if err != nil {
        return errors.Wrap(cause, err.Error())
    }
    return cause
}
return l.fixup(obj)