Como adicionar saída de um comando a um nome de grupo em um script? [duplicado]

0

Estou criando manualmente uma versão do useradd, e no momento o que estou tentando fazer é obter a saída desse comando:

head -$1 /folder/file | grep $2 | cut -d ',' -f4

e insira-o neste comando:

echo "$1:x:50$int" >> /etc/group

onde $ 1 é. Basicamente, o primeiro comando é puxar o nome de uma empresa e eu quero adicioná-lo a um grupo. Eu já tenho uma configuração de id de grupo.

    
por Danny 19.02.2017 / 23:32

1 resposta

2

Como tudo o que você está tentando fazer é obter a saída do primeiro comando no segundo comando, é possível executar uma substituição de comando $() do primeiro comando no segundo comando. Para combiná-los, coloque o primeiro comando no segundo comando em que você deseja que a saída seja, para que você não tenha a necessidade de atribuir a saída do primeiro comando a uma variável e depois colocá-lo no segundo comando.

Primeiro comando:

head -$1 /folder/file | grep $2 | cut -d ',' -f4

Que você sabe que retorna o que você quer. Em seu segundo comando, você sabe que deseja a saída do primeiro comando em um local específico, como onde o $1 está localizado no segundo comando.

Segundo comando:

echo "$1:x:50$int" >> /etc/group

Como $1 é o que você deseja substituir no segundo comando, substitua o $1 pela substituição do comando e o comando do primeiro como este:

echo "$(head -$1 /folder/file | grep $2 | cut -d ',' -f4):x:50$int" >> /etc/group

Espero que isso ajude!

    
por Terrance 20.02.2017 / 05:50