Как настроить идентификатор стационарного абонента на сервере NFS?

Установка IFS только к новой строке недостаточно. (Почему Вы также разделяете в символах возврата, между прочим?),

В Вашем коде, ${ROWS[@]} (который является странным способом записать $ROWSROWS не массив), не дважды заключается в кавычки. (Если бы это были внутренние двойные кавычки, то Вы получили бы единственную строку с тех пор ROWS не массив.), Таким образом, оболочка разделяет значение переменной в поля в каждом IFS символ, затем рассматривает каждое поле как шаблон шарика. Например, если одна из строк, распечатанных командой, содержит отдельный символ *, это будет заменено именами файлов в текущем каталоге.

Можно выключить globbing с set -f. В большинстве случаев, где Вы устанавливаете IFS для использования полевой функции разделения оболочки также необходимо выключить globbing. Задержите его на с set +f.

Надежная идиома для чтения вывода команды линию за линией while IFS= read -r.

some command returning multiple lines |
while IFS= read -r ROW; do
  …
done

Обратите внимание, что большинство оболочек выполняет каждую команду конвейера в отдельной подоболочке. Таким образом, если необходимо установить переменные и использовать их после цикла, перенести эти команды в группу вместе с циклом. (Ksh и zsh являются исключениями, они выполняют последнюю команду конвейера в родительской оболочке.)

some command returning multiple lines | {
  while IFS= read -r ROW; do
    …
    row_count=$((row_count+1))
  done
  echo "There were $row_count rows."
}

1
11.10.2013, 01:04
2 ответа

Поместить -mapall=user в Ваш exports файл.

Посмотрите man exports для деталей

4
27.01.2020, 23:13

Это возможно, посмотрите на раздел отображения идентификатора пользователя в странице справочника экспорта.

В основном Вы хотите это в строке экспорта: all_squash anonuid=whatever anongid=whatever

Если Вы не находитесь на Linux, а на BSD, сделайте то, что сказал Chris S.

3
27.01.2020, 23:13

Теги

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