Я пытаюсь создать сценарий оболочки для создания пользователей и создания / добавления каждого в группу из списка в текстовом файле в Ubuntu 18.04. У меня были проблемы с чтением входного файла.
Извините, я новичок в написании сценариев, но у меня есть опыт работы на других языках.
Я пробовал переключаться между while и forциклы (не имеет значения), и я исправил путь, чтобы он мог читать файл, но после каждой строки он говорит: «Боб: не найден». Сейчас я просто повторяю его, пока пытаюсь это исправить.
Вот мой сценарий оболочки на данный момент: GNU nano 2.5.3 Файл: shell_lab
#!/bin/sh
# test
cd "$(dirname "$0")"
echo "script running"
for line in $(./input.txt)
do
echo "$line"
done
И вот мой вкладфайл (в том же каталоге):
GNU nano 2.5.3 Файл: input.txt
bob
larry
joe
Я ожидал, что мне вернутся: bob larry joe
И вот что я получил вместо этого: konather @ ubuntu: ~ $ sudo ./shell_lab
script running
./input.txt: 1: ./input.txt: bob: not found
./input.txt: 2: ./input.txt: larry: not found
./input.txt: 3: ./input.txt: joe: not found`
Я также попробовал этот, который нашел с тем же результатом:
#!/bin/sh
for i in `./input.txt`
do
echo $i
# echo $i"123" | passwd "$i" --stdin
# echo; echo "User $username's password changed!"
done
выше было решено, еще один вопрос ниже
У меня есть еще одна проблема, немного не связанная. Я сейчас пытаюсь автоматизировать создание пароля. я дошел до того, что повторил пароль из файла input.txt в трубе, но не думаю, что он на самом деле отвечает на запросы для меня.
while read u1 p1
do
echo "$p1" |echo "$p1"| passwd $u1
# echo "$u1 had the password changed to $p1"
done < input.txt
Результат: script running Enter new UNIX password: Retype new UNIX password: passwd: Authentication token manipulation error passwd: password unchanged