변수 할당 중에 명령 출력에서 ​​새 줄을 유지하는 방법은 무엇입니까?

변수 할당 중에 명령 출력에서 ​​새 줄을 유지하는 방법은 무엇입니까?

고려하다:

$ getfacl somefile.dat     # The output is formatted and contains several new lines..

# file: somefile.dat
# owner: user1
# group: group1
user::rw-
group::r--              #effective:r--
mask:r--
other:r--
$
$ ACL_PERMISSIONS=$(getfacl somefile.dat);
$ echo $ACL_PERMISSIONS;
# file: somefile.dat # owner: user1 # group: group1 user::rw- group::r-- #effective:r-- mask:r-- other:r--

$ACL_PERMISSIONS그렇다면 변수 할당 중에 이러한 새 줄을 유지하여 에코할 때 다음 과 같은 출력을 얻을 수 있는 방법 은 무엇입니까 $ getfacl somefile.dat?

답변1

확장명을 인용해야 합니다. 그렇지 않으면 단어 분리가 발생합니다. 이는 현재 겪고 있는 현상입니다.

acl=$(getfacl somefile.dat)
echo "$acl"

어쨌든 후행 줄 바꿈은 제거된다는 점을 명심하십시오 $((기능으로 간주됨). 이것이 문제가 된다면, 이를 보존하기 위해 다음을 수행해야 합니다(bash4+에서):

mapfile acl < <(getfacl somefile.dat)
printf %s "${acl[@]}"

관련 정보