Bash incrementando string bash - a partir de um arquivo de texto

0

Estou com dificuldades para trabalhar com um trecho do meu código. Eu tenho um banco de dados com nomes de usuário e o script escolhe automaticamente o próximo nome de usuário disponível. Por exemplo, a entrada é JoeBlogs mas JoeBlogs já foi tomada, então JoeBlogs1 é usado, então JoeBlogs2 etc. O banco de dados contém a lista de nomes de usuários usados, então estou tentando obtê-lo para colocar o próximo número disponível após o nome dado.

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 é muito simples, apenas um monte de nomes armazenados em sua própria linha.

Eu entendo por que ele não está funcionando, mas não consigo descobrir como fazer isso.

    
por user3712469 02.02.2018 / 03:16

1 resposta

0
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
    
por user3712469 05.02.2018 / 21:51