使用“su”和内联变量启动 Linux 命令

使用“su”和内联变量启动 Linux 命令

我正在尝试使用 su 从命令行为另一个用户创建 mozilla 配置文件。

当我从 X 尝试时,它将会起作用。

su myuser -c 'mozilla -CreateProfile newprofile'

但我的目标是将其嵌入到脚本中,并且它只会在命令行模式下执行。如果我从命令行尝试此操作,它也会起作用:

DISPLAY=1.0 mozilla -CreateProfile newprofile

问题是如何在“su”命令中嵌入“DISPLAY”变量,因为这会失败:

su myuser -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'

答案1

您是否尝试过这个:

su myuser -c 'export DISPLAY=\"1.0\"; mozilla -CreateProfile newprofile'

这确实应该发布在 superuser.com 上

通过转义变量 DISPLAY 中的引号来尝试该变体...

答案2

这对我有用:

su sh -c 'DISPLAY=1.0  echo $DISPLAY'

您遇到的错误到底是什么?

答案3

这个如何:

su myuser -c "sh -c 'DISPLAY=1.0 mozilla -CreateProfile newprofile'"

答案4

TEMPXAUTH=$(xauth nlist) su -c 'xauth nmerge <<< "$TEMPXAUTH" && mozilla -CreateProfile newprofile'

临时文件也可以起作用。

相关内容