Я хочу предсказать следующий UID перед созданием нового пользователя. Поскольку новый будет принимать наибольшее значение идентификатора еще и добавляет к нему 1, я думал о следующем сценарии:Как извлечь наибольшее значение UID из/etc/passwd?
biggestID=0
cat /etc/passwd | while read line
do
if test [$(echo $line | cut -d: -f3) > $biggestID]
then
biggestID=$(echo $line | cut -d: -f3)
fi
echo $biggestID
done
let biggestID=$biggestID+1
echo $biggestID
В результате я получаю 1
. Это смутило меня, и я подумал, что проблема связана с циклом, поэтому я добавил echo $biggestID
чуть ниже fi
, чтобы проверить, действительно ли его значение меняется, и оказалось, что в цикле нет проблем, так как я получил много значений до 1000. Итак, почему значение biggestID
возвращается к 0
после цикла?
Возможный дубликат [Как я могу добавить номера в Баш скрипт] (http://stackoverflow.com/questions/6348902/how-can-i-add-numbers-in-a-bash-script) – tddmonkey
Предположим, у вас есть строка типа 'nobody: x: 65534: 65533: nobody:/var/lib/nobody:/bin/bash' и вы хотите пропустить этот. –