Я бы хотел изменить значение массива и был бы признателен за любую помощь.
Я получил такой массив:
users=(root isometric akau)
(На самом деле это список текущих пользователей), который я хотел бы проверить, существует ли пользователь, а если нет, то удалить человека из массива. Я попытался поэкспериментировать с этим, поместив его в цикл for и оценив его:
for i in ${users[@]}; do
eval "users=($([ -z $(grep \"^\$i\" /etc/shadow) ] && sed \"s/\$i//g\"))"
done
echo $users
Я думал о том, чтобы поиграть с этим еще немного, но подумал, что может быть слишком сложно (не уверен, что смогу поместить команду в массив) У кого-нибудь есть идеи, как это сделать?
Edit:
Как я ввел переменную массива unset number:
cnt=0
for i in ${users[@]}; do
[ -z "$(grep "^$i" /etc/shadow)" ] && unset users[cnt] || ((cnt++))
done
Edit2:
На самом деле Деннис даже лучше.