grim/slurp를 사용할 때 스크린샷 파일 이름을 생성하려고 할 때 왜 이상한 동작이 나타나는지 잘 모르겠습니다.
내가 이렇게 하면:
grim -g "$(slurp)" "$HOME/screenshot-$(date).png"
나는 얻다:
screenshot-Sat 27 Jun 2020 06:02:36 PM EDT
시간이 내 폴더에 정렬되어 있지 않다는 점을 제외하면 잘 작동합니다. 그래서 나는 이것을 시도했습니다 :
grim -g "$(slurp)" "$HOME/screenshot-$(date +\"%y%m%d_%T\").png"
하지만 이 경우 나는 다음과 같은 결과를 얻습니다.
screenshot-"200627_19:35:39.png"
전체 날짜 문자열 주위에 따옴표가 있는 이유(표현식에 따옴표가 없음)와 이를 제거하는 방법을 설명할 수 있는 사람이 있습니까?
답변1
$()
따옴표를 이스케이프 처리할 필요가 없도록 새 인용 컨텍스트를 만듭니다. 이것이 $()
선호되는 이유 중 하나 입니다 ``
. 중첩과 따옴표를 혼합하면 악몽이 생길 수 있습니다.
비교하려고:
$ echo "screenshot-$(date +\"%y%m%d_%T\").png"
screenshot-"200701_14:56:19".png
$ echo "screenshot-`date +\"%y%m%d_%T\"`.png"
screenshot-200701_14:56:27.png
백슬래시를 생략하고 그냥 사용할 수도 있습니다 "screenshot-$(date +"%y%m%d_%T").png"
. 또는 %
나머지는 특별하지 않으므로 내부 따옴표를 완전히 생략하면 됩니다.
$ echo "screenshot-$(date +%y%m%d_%T).png"
screenshot-200701_14:57:23.png
답변2
백슬래시만 제거하세요. 그게 아니야 :
grim -g "$(slurp)" "$HOME/screenshot-$(date +\"%y%m%d_%T\").png"
하지만 이것은:
grim -g "$(slurp)" "$HOME/screenshot-$(date +"%y%m%d_%T").png"
하지만 귀하의 의견에 관해서는:내 폴더의 시간이 정렬되지 않았습니다.
다음을 사용하는 것이 좋습니다: FullYear - Moth - Day 또는 %Y%m%d_%T
또는 그냥%F_%T
텍스트 정렬은 이 형식을 사용하는 날짜에 적합합니다.