Настройка PPTP VPN соединения без GUI [закрыто]

Он читается построчно, но вы забыли процитировать $ {x [@]} , что означает, что к нему был применен оператор split + glob.

readarray x < <(ls -la)
printf %s "${x[@]}"

Или удалить последний символ новой строки из каждой из этих строк:

readarray -t x < <(ls -la)
printf 'line: %s\n' "${x[@]}"

Или с помощью оператора split + glob :

IFS=$'\n' # split on newline
set -o noglob
x=($(ls -la))

(в отличие от readarray -rt , что метод удаляет пустые строки (маловероятно, но возможно, что это может произойти в выводе ls -la ))

Если вы хотите получить список имен файлов (включая скрытые) без других ls -l , вы бы предпочли использовать:

shopt -s nullglob dotglob
x=(*)

В отличие от ls -a , он не включает . или .. впрочем. Если бы они вам действительно были нужны, вы бы сделали вместо этого:

shopt -s nullglob
x=(.* *)
2
29.11.2012, 20:29
0 ответов

Теги

Похожие вопросы