«при чтении -r LINE; do »заменяет несколько пробелов одним пробелом [дубликат]

Код useradd вызывает библиотечную функцию mkdir для (попытки) создания указанного каталога. useradd проверяет код возврата, но только на то, что он не равен нулю; в этом случае я подозреваю, что mkdir возвращает ENOENT -- компонент каталога в имени пути не существует или является оборванной символической ссылкой, поскольку родительский каталог (/opt/atlassian) не существовал или имел был удален во время ваших попыток добавить пользователя.

Как отмечают Kusalananda/roaima, самое простое решение здесь — создать структуру родительского каталога перед вызовом useradd:

  1. sudo mkdir -p /opt/atlassian
  2. sudo /usr/sbin/useradd --create- home --home-dir /opt/atlassian/bitbucket --shell /bin/bash atlbitbucket

0
06.08.2017, 03:27
1 ответ

При выводе переменной заключайте ее в кавычки. Он расширяется, а затем разделяется на слова, поэтому echoполучает helloи thereв качестве отдельных аргументов.

echo "$LINE"

или выше

printf '%s\n' "$LINE"

сохраните пробелы

так что не readменяет ваш пробел, а то, что вы не заключаете переменную в кавычки позже

7
28.01.2020, 02:16

Теги

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