Pular para o conteúdo

Criar árvore de diretórios para repositorio pessoal [RESOLVIDO]

Responder tópico
  • Denunciar
  • Indicar

1. Criar árvore de diretórios para repositorio pessoal [RESOLVIDO]

Enviado em 16/01/2012 - 15:19h

Gostaria de saber se existe alguma forma do comando mkdir interpretar alguns caracteres especiais, tais como "{}" "," "()" dentro de variáveis, pois quando tento fazer a construção de uma árvore de diretório ele nomeia a pasta com as "{}" ou os "()" ficando mais ou menos assim: {contrib,main,non-free}


os comandos são esses:

COMPONENTS="contrib,main,non-free"
DISTRIB=`lsb_release -sc`
DISTS="dists/$DISTRIB/{$COMPONENTS}"
POOL="pool/$DISTRIB/$COMPONENTS"
TIPO="binary-i386,sources"

mkdir -p $DISTS
mkdir -p $POOL

Responder tópico

2. Re: Criar árvore de diretórios para repositorio pessoal [RESOLVIDO]

Enviado em 16/01/2012 - 15:34h

Use laços de repetição.


# declare o array
COMPONENTS=(contrib main non-free)

# use cada elemento do array para criar
# a árvore através de laço de repetição determinado.
for COMPONENTE in ${COMPONENTS[@]}
do
mkdir -p ${DISTS}/${COMPONENTE}
mkdir -p ${POLL}/${COMPONENTE}
done

3. Re: Criar árvore de diretórios para repositorio pessoal [RESOLVIDO]

Enviado em 16/01/2012 - 15:42h

allendohorizonte escreveu:

Gostaria de saber se existe alguma forma do comando mkdir interpretar alguns caracteres especiais, tais como "{}" "," "()" dentro de variáveis, pois quando tento fazer a construção de uma árvore de diretório ele nomeia a pasta com as "{}" ou os "()" ficando mais ou menos assim: {contrib,main,non-free}

os comandos são esses:

COMPONENTS="contrib,main,non-free"
DISTRIB=`lsb_release -sc`
DISTS="dists/$DISTRIB/{$COMPONENTS}"
POOL="pool/$DISTRIB/$COMPONENTS"
TIPO="binary-i386,sources"

mkdir -p $DISTS
mkdir -p $POOL
Vamos lá, tive que mudar um pouco a estrutura do script, mas deu certo:



#!/bin/bash

COMPONENTS="contrib main non-free"
DISTRIB=`lsb_release -sc`
DISTS="dist/$DISTRIB"
POOL="pool/$DISTRIB"
TIPO="binary-i386 sources"

for i in `echo $COMPONENTS`
do

mkdir -p "$DISTS/$i"
mkdir -p "$POOL/$i"

done

Responder tópico

Responder tópico

Entre na sua conta para responder.

Fazer login para responder