Bash: синтаксическая ошибка: "(" неожиданный вопрос в Ubuntu - PullRequest
0 голосов
/ 06 октября 2018

Я новичок в скриптовой стороне Bash.Получение синтаксической ошибки в строке 2. Но не уверен, в чем проблема.Помощь приветствуется.Спасибо!

#!/bin/bash

# Prints userlist, add users to system, add users to wheel group, and sets password.

userlist=(john mary dan jenna gary)
for i in {$userlist[@]}
do 
echo ${userlist[@]}
 sudo useradd ${userlist[@]}
 usermod -aG wheel ${userlist[@]}
 passwd ${userlist[@]}
done 

Ответы [ 2 ]

0 голосов
/ 08 октября 2018

Не будет ли этот сценарий проще?

for i in john mary dan jenna gary
do 
echo $i
 sudo useradd $i
 usermod -aG wheel $i
 passwd $i
done 
0 голосов
/ 06 октября 2018

У вас есть опечатка:

for i in {$userlist[@]}

должно быть:

for i in ${userlist[@]}

Поскольку userlist является массивом, $userlist расширяется до первого элемента, john,поэтому {$userlist[@]} становится {john[@]}, что, по-видимому, не то, что вам нужно.

Кроме того, внутри цикла for следует использовать $i для ссылки на каждый элемент в массиве $userlist.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...