我想捕获使用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
启动它的子外壳有关 - 我猜它不会传播它的输出?
-c 命令中的“$n”由外壳扩展,而不是通过 scrot。你应该逃避它: