Bash 递增 bash 字符串 - 来自文本文件

Bash 递增 bash 字符串 - 来自文本文件

我正在努力使我的一段代码正常工作。我有一个包含用户名的数据库,脚本会自动选择下一个可用的用户名。例如,输入的是,JoeBlogsJoeBlogs已被占用,因此JoeBlogs1被使用,然后JoeBlogs2等等。数据库包含已使用的用户名列表,因此我试图让它在给定名称后放置下一个可用的数字。

testdb=`cat test.db`
cd "$(dirname "$0")"
ftpfullname="JoeBlogs"
for output in $testdb
do
    if [ "$ftpfullname" == "$output" ]
    then
        ftpfullname="${ftpfullname}1"
    fi
done
echo "$ftpfullname has been selected"

test.db很简单,只是一堆名字自己存储就行了。

我明白为什么它不起作用但我就是不知道该如何去做。

答案1

accountsdb=`cat test.db | sort`
namex="0"
nameplus=0
ftpfullname="turner"
for output in $accountsdb
do
  if [ "$ftpfullname" == "$output" ]
  then
    let "nameplus += 1"
    for i in $nameplus
    do
      echo "$nameplus"
      echo "$i"
      if [ "$namex" == "1" ]
      then
        ftpfullname=${ftpfullname%?}
      fi
      namex="1"
      ftpfullname="${ftpfullname}${i}"
      break
    done
  fi
done
echo "$ftpfullname"
echo $namex
echo "$ftpfullname" >> test.db

相关内容