我想捕获用scrot创建的图像文件的名称。我可以像这样捕捉文件名:
$ image=$(scrot -s -e 'echo $n')
$ echo $image
2018-09-07-140419_185x76_scrot.png我需要通过su:
$ image=$(su someuser -c "scrot -s -e 'echo $n'")然而,image是空的。
我认为这个语法是正确的-这是有效的:
$ greeting=$(su someuser -c "echo 'hello, world'")
$ echo $greeting
hello, world我不知道为什么这不适用于scrot。我认为这与scrot如何启动它的子subshell有关--我猜它没有传播它的输出?
发布于 2018-09-07 14:03:16
$n命令中的“-c”由外壳展开,而不是由scrot展开。你应该逃避它:
$ image=$(su someuser -c "scrot -s -e 'echo \$n'")https://unix.stackexchange.com/questions/467540
复制相似问题