Как сохранить новые строки, исходящие из вывода команды во время присвоения переменной?

Рассматривать:

$ 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 ..?

One Solution collect form web for “Как сохранить новые строки, исходящие из вывода команды во время присвоения переменной?”

Вы должны процитировать ваше расширение, иначе оно претерпит расщепление слов, что и есть то, что вы испытываете.

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

Имейте в виду, что $( strips, заканчивая символами новой строки, в любом случае (это считается функцией). Если это проблема для вас, вам нужно сделать что-то вроде этого, чтобы сохранить их (в bash4 +):

 mapfile acl < <(getfacl somefile.dat) printf %s "${acl[@]}" 
  • Как я могу повторить последнюю команду без использования клавиш со стрелками?
  • bash_logout запускает только команду на последнем выходе
  • Как сделать дубликаты с разными именами из одного файла?
  • Как выполнять последовательные команды из истории?
  • Как я могу перемещаться между словами в командной строке в tcsh в linux?
  • POSIX и Bash, sh shorthand, для составного оператора if
  • Разделение аргумента командной строки bash
  • поиск ipv6-адреса для MAC-адреса у соседей
  • список истории в bash всегда усечен до 5000 строк при новом входе в систему
  • Выполнить код в скрипте выхода, если он выходит из определенного каталога?
  • -bash:! '@ 10.109.10.142/?ip=10.109.8.39: событие не найдено
  • Linux и Unix - лучшая ОС в мире.