Como criar uma conta de usuário a partir de uma entrada de arquivo de texto

0

É necessário criar um script bash para criar um nome de usuário a partir de um arquivo que contenha abaixo (nome completo do diretório inicial do nome de usuário)

drs / home / drs Parana Theruwalan

Meu script:

!#/bin/bash
#call data from file
file="file.txt"
USERNAME=$(cat file.txt | cut -d: -f1)

USER_FULLNAME=$(cat file.txt | cut -d: -f2)

useradd -m ($USERNAME) -c ($USER_FULNAME)

Estou recebendo um erro de nome de usuário inválido.

    
por Suresh Silva 15.08.2018 / 11:23

3 respostas

0

Primeiro você deve remover o () para usar variáveis: useradd -m ${USERNAME} -c ${USER_FULNAME}

Em segundo lugar, verifique a saída do nome de usuário, talvez inclua caracteres inválidos.

    
por 15.08.2018 / 11:38
0

Aqui você vai:

#!/bin/bash
#call data from file
FILE="file.txt"
USERNAME=$(cut -d " " -f 1 $FILE)
USER_FULLNAME=$(cut -d " " -f 3,4 $FILE)
useradd -m -c "${USER_FULLNAME}" "${USERNAME}" 
    
por 15.08.2018 / 12:09
0

Quais são os seus separadores, espaço ou cólon? Seu exemplo sugere espaço, seu código sugere cólon.

Você pode fazer isso no bash.

#!/bin/bash
file="file.txt"
while IFS=: read USERNAME USER_HOME USER_FULLNAME; do
    useradd -m -c "$USER_FULLNAME" -d "$USER_HOME" "$USERNAME"
done < "$file"

Este exemplo assume como entrada um arquivo com linhas como

drs:/home/drs:Paranas Theruwalan
    
por 15.08.2018 / 12:19

Tags