다음을 사용하여 생성된 이미지 파일의 이름을 캡처하고 싶습니다.스카우트. 다음과 같이 파일 이름을 캡처할 수 있습니다.
$ 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
출력을 전파하지 않는 것 같나요?
답변1
-c 명령의 "$n"은 scrot이 아닌 쉘에 의해 확장됩니다. 이스케이프해야 합니다.
$ image=$(su someuser -c "scrot -s -e 'echo \$n'")