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