udisksctl: 지역화된 출력을 구문 분석하지 않고 루프 장치 및 마운트 지점을 얻으시겠습니까?

udisksctl: 지역화된 출력을 구문 분석하지 않고 루프 장치 및 마운트 지점을 얻으시겠습니까?

udisksctl파일 시스템 이미지 작업을 할 때 제가 선택한 도구입니다(최근의 예, 하지만 난 이런 일을 해왔어어디에나).

춤은 대개 다음과 같습니다.

fallocate -l ${img_size} filesystem.img
mkfs.${fs} filesystem.img

# Set up loop device as regular user
loopback=$(udisksctl loop-setup -b "${img_file}" | sed 's/.* \([^ ]*\)\.$/\1/')

# Mount as regular user
mounted=$(udisksctl mount -b "${loopback}" | sed 's/^.* \([^ ]*\)$/\1/')

# Do the testing/benchmarking/file management
# e.g.:
cp -- "${files[@]}" "${mounted}"

udisksctl솔직히 말해서 나는 구문 분석 방식에 대해 나쁜 느낌을 가지고 있습니다. 이것은 분명히 인공적인 문자열입니다:

Mapped file filesystem.img as /dev/loop0.
Mounted /dev/loop1 at /run/media/marcus/E954-81FB

나는 누구도 실제 형식 "API"를 고려하지 않는다고 생각합니다. 따라서 내 스크립트가 나중에 충돌할 수 있습니다! (이미지 파일 이름에 개행 문자가 포함되어 있으면 코 악마가 생길 것입니다.)

udisksctl"도자기" 출력 옵션이나 그와 유사한 것은 없는 것 같습니다. udisksctl정확하고 명확한 출력으로 udisks2를 통해 사용자 권한으로 루프백 설치를 수행하는 기존 방법이 있습니까 ?

관련 정보