変数の割り当て中にコマンド出力で新しい行を維持する方法は?

変数の割り当て中にコマンド出力で新しい行を維持する方法は?

考慮する:

$ 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[@]}"

おすすめ記事