我试图检查已经使用的uid,并且在1000到60000的范围内,使用嵌套的if条件,但只有范围条件有效。它还打印$hpass内容。有什么想法可以改进代码吗?
提前感谢您的任何建议!
下面是我的代码:
#!/bin/bash
dbpasswd=$(cat /etc/passwd | cut -d ":" -f3 | sort -n)
hpass=$(printf '%d\n' "$dbpasswd") #to put all numbers on separeate line
while true; do
read -p "Enter a number between 1000 and 59999" num
echo ""
if [[ "$num" -gt 1000 && "$num" -lt 60000 ]]; then
if [[ "$num" -eq "$hpass" ]]; then
echo "$num is already in use"
else
echo "$num is in range and not yet used!"
break
fi
else
echo "$num is out of range"
fi
done
1条答案
按热度按时间dgenwo3n1#
将
/etc/passwd
uid列表加载到数组中:修改OP的当前代码以测试
$num
是否是数组中的元素: