我正在尝试使用 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'
临时文件也可以起作用。