mkdir usando variáveis [duplicado]

0

Estou tendo problemas para criar diretórios usando uma variável em um script. Ex:

read user
mkdir $user{01..10}

Curiosamente, funcionará assim:

read user
mkdir {01..10}$user

Qualquer maneira de contornar isso, ou o que estou perdendo?

Obrigado

    
por snorlax69 02.03.2017 / 18:35

2 respostas

1

A expansão de contraventamento acontece antes da expansão da variável em bash . Isso significa que o comando

mkdir $user{01..10}

é expandido primeiro para

mkdir $user01 $user02 (etc.)

Estas variáveis não existem, então o comando final que é executado será

mkdir

sem operandos.

Para corrigir isso, use

mkdir "$user"{01..10}
    
por 02.03.2017 / 18:42
0

Você só precisa usar colchetes para fazer a expansão da variável correta e a variável de ambiente resolver:

read user
mkdir ${user}{01..10}

Aspas duplas, embora não sejam a maneira mais elegante, ainda funcionam:

read user
mkdir "$user"{01..10}
    
por 02.03.2017 / 18:38