Передача по каналу ничего к xargs

Если у Вас только нет маленького небольшого количества систем, Вы задаете неправильный вопрос. Ответ не должен выполнить useradd вообще, но вместо этого оставить эту работу решению для управления конфигурацией как марионетка или шеф-повар. Это будет позволять Вашим пользовательским определениям быть централизованными и препятствовать тому, чтобы Вы работали за циклами и использовали ssh с пользователями root, для конфигурирования систем. У Вас всегда будут системы в известном состоянии конфигурации.

Документация для марионетки доступна по http://docs.puppetlabs.com

Как пример в марионетке:

user { "bob" : 
  password   => "$1$yv3n066X$Vpb05Ac/fHTicNdT9T5vz1", # generated with `openssl passwd -1`
  ensure     => present,                              # ensure => absent to remove
  managehome => true,
}

14
19.01.2013, 04:02
2 ответа

Вам нужно -r или --no-run-if-empty опции.

Следует иметь в виду, что это конкретное поведение трудно сделать межплатформенным. Версии BSD xargs выполненный с -r по умолчанию. Для версии GNU нужен он. Версия FreeBSD xargs игнорирует -r флаг для совместимости с GNU. Версия Mac OS X даже не принимает флаг и бросает ошибку illegal option.

Вы могли бы затем принять решение использовать обнаружение ОС на основе $OSTYPE записать межплатформенный сценарий. Еще лучше попытайтесь обнаружить поведение xargs самостоятельно. Выполните его с -r и если это перестало работать (код состояния> 0), выполните его без -r.

13
27.01.2020, 19:51

Урок в том, почему необходимо прочитать страницы справочника …

-r или --no-run-if-empty флаги являются моим другом.

3
27.01.2020, 19:51

Теги

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