echo "Enter your First Name: "; read firstecho "Enter your Last Name: "; read lastuser=${first:0:1}${last:0:4}echo "Your Username is: " $userecho $user":"$first":"$last>> Print.txt到目前为止,我可以将用户的名字/姓氏存储到文件中,并使用该信息根据提供的信息创建一个唯一的用户名,该信息也存储在文件中。但是,意识到许多人可以使用相同的用户名,我将如何在print.txt文件中进行搜索以查看是否存在多个相同的用户名,然后根据该用户名将正确的增量添加到用户名中。我想我将需要一会儿循环和grep -q,但我有一段时间了,无法弄清楚。以视觉方式显示我想要实现的示例 first name: daniel last name: nash user name will be DNASH first name: donna last name: nash user name will be DNASH1 first name: donald last name: nash user name will be DNASH2
2 回答
慕尼黑的夜晚无繁华
TA贡献1864条经验 获得超6个赞
您可以使用grep的“ -c”选项来代替使用while循环:
#!/bin/bash
[ ! -f Print.txt ] && touch Print.txt
read -p "Enter your First Name: " _FIRST
read -p "Enter your Last Name: " _LAST
_USER=${_FIRST:0:1}${_LAST:0:4}
_COUNT=`grep -c "${_USER}" Print.txt`
if [ ${_COUNT} -gt 0 ] ; then
_USER="${_USER}${_COUNT}"
fi
echo "Your Username is: ${_USER}"
echo "${_USER}:${_FIRST}:${_LAST}" >> Print.txt
这样可以实现您的想法吗?
吃鸡游戏
TA贡献1829条经验 获得超7个赞
您可以使用:
n=""
while grep -qFx "${user}$n" <(cut -d: -f1 Print.txt); do
((n++))
done
user="$user$n"
echo "user name will be $user"
- 2 回答
- 0 关注
- 368 浏览
添加回答
举报
0/150
提交
取消