2013-02-09 5 views
1

Чтобы быть быстрым, это моя команда:
Выполнение команды с различными переменными в одной строке с xargs

echo "user1,user2,user3" | xargs -d, -L 1 usermod -g specialgroup 

Я хочу добавить несколько существующих пользователей в одной группе в одной командной строке. Но, выше не работает, однако, если вы поставите:

echo "user1,user2,user3" | xargs -d, -L 1 echo 

Он перечисляет вам трех пользователей:

user1 
user2 
user3 

Любая идея о том, как я могу это сделать? Даже если это без xargs.

+0

Я предполагаю, что вы протестировали, что он работает, когда вы передаете три имени пользователя вручную? – daviewales

+0

Я не совсем понимаю вашу верхнюю строку. Что со звездочками и с эхом в конце? – daviewales

+0

Не являются астеристами ... он должен был сделать палец BOLD, но кто-то отредактировал мой вопрос и оставил формат вещей ... И да, я проверил его вручную, и он работает на 100%. – MoeSzislak

ответ

1

Из-за последней новой строки, написанной echo, user3 становится user3\n. Я проверил ваш пример (удаление попыток форматирования и посторонних echo s из кода), и я обнаружил, что это единственная проблема, мешающая ему работать.

Используйте echo -n "user1,user2,user3", чтобы избежать окончательной новой строки.

+0

Существует также 'adduser' (который обычно используется для создания пользователя, но он добавляет пользователя в группу с синтаксисом' adduser user group'). И вы должны сказать * как * это не работает (сообщение об ошибке? Или все выглядит хорошо, но без эффекта? (И как вы его проверяете)). Обратите внимание, что эти команды обычно находятся в '/ usr/sbin', и для их использования вы должны быть' root'. –

+0

ЭТО РАБОТАЕТ! Моя ошибка, я не удалял «эхо» с конца. – MoeSzislak

 Смежные вопросы

  • Нет связанных вопросов^_^