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 關注
- 399 瀏覽
添加回答
舉報
0/150
提交
取消