Se por algum motivo você não quiser apenas usar a expansão de contraventamento (veja também abaixo), pode considerar:
seq 5 | xargs -I N mkdir nameN
Isso cria name1 , name2 , name3 , name4 e name5 . Ele funciona mesmo se o seu shell não suportar a expansão de chave (mas bash ). O comando xargs constrói e executa comandos. Esse comando específico xargs executa comandos como mkdir nameN , mas com N substituído por cada palavra da entrada (que é canalizada de seq ). Corra man xargs ou leia esta página para mais informações sobre a opção -I .
Se isso é para uma tarefa de casa, talvez você não tenha permissão para usar um terceiro comando ( xargs ). Mas na "vida real", é menos provável que você tenha essa restrição. Além disso, se você está fazendo isso para fins de aprendizado, é uma oportunidade de aprender o comando xargs - se você ainda não o conhece - o que é útil em uma variedade de situações.
Você também pode usar um loop de shell, conforme AlexP sugeriu (%código%). O for d in $(seq 5); do mkdir name$d; done loop usa a sintaxe for $( para executar substituição de comandos para obter a lista ) de 1 2 3 4 5 , em seguida, usa expansão de parâmetro ( seq ) para formar o nome do diretório em cada comando $d .
Você deve estar ciente de que todos esses métodos se baseiam na ausência de espaço em branco nos nomes de diretório, embora seja possível modificá-los para que não ocorram.
Mas você está usando mkdir e, como muitos shells , ele suporta expansão de brace . Agora, talvez você precise que seu script seja portátil para shells que não (como bash ). Se é isso que você precisa, você não deve usar a expansão de chaves. Caso contrário, você deve seguir a recomendação de Jeff Schaller de simplesmente escrever dash .