mkdir avec une espace dans le nom de fichier dans un script.

mkdir avec une espace dans le nom de fichier dans un script. - Shell/Batch - Programmation

Marsh Posté le 07-08-2013 à 21:52:30    

Bonjour,  :hello:  
Je veux faire un mkdir avec une espace dans le nom de fichier.
 
J'ai fait ceci.

Code :
  1. #!/bin/bash                                                                                                                                                                                                        
  2. declare -a sub_directories=(src/lib bin obj Documentations);
  3. echo "mkproject"
  4. if ! [ -e $1 ]; then
  5.    declare project_name=$1;
  6.    echo "Project name : " $project_name;
  7.    echo "Creating project.";
  8.    sleep 1.0;
  9.    mkdir $project_name;
  10.    echo "Change directory to " $project_name;
  11.    sleep 0.5;
  12.    cd $project_name;
  13.    echo "Creating sub directory for " $project_name;
  14.    for dir in ${!sub_directories[*]}; do
  15.        echo ${sub_directories[dir]};
  16.        mkdir -p ${sub_directories[dir]};
  17.        sleep 0.5;
  18.    done;
  19. else
  20.    echo "Project named " $1 " alredy exist.";
  21. fi;


Qui declare un tableau de sous répertoires à créer.
qui vérifie si le fichier n'existe pas.
qui crée le répertoire.
execute un change directory dans le nouveau répertoire (sans controler si il existe  :( )
et crée la sous arborescence.
 
Mon problème est que quelque part la chaîne en entrée est scinder en plusieurs mots.
Je cherche les bonne protection ou la bonne méthode pour parvenir à ma fin, je suis sur Gnu/Linux en bash.
s'il vous plaît, merci.   ;)

Reply

Marsh Posté le 07-08-2013 à 21:52:30   

Reply

Marsh Posté le 07-08-2013 à 22:18:43    

Ok, j'ai trouvé, merci.
 

Code :
  1. #!/bin/bash                                                                                                                                                                                                        
  2. declare -a sub_directories=(src/lib bin obj Documentations);
  3. echo "mkproject"
  4. if ! [ -e "$1" ]; then
  5.    declare project_name=$1;
  6.    echo "Project name : " $project_name;
  7.    echo "Creating project.";
  8.    sleep 1.0;
  9.    mkdir "$project_name";
  10.    if [ -e "$project_name" ]; then
  11.        echo "Change directory to " $project_name;
  12.        sleep 0.5;
  13.        cd "$project_name";
  14.        echo "Creating sub directory for " $project_name;
  15.        for dir in ${!sub_directories[*]}; do
  16.            echo ${sub_directories[dir]};
  17.            mkdir -p ${sub_directories[dir]};
  18.            sleep 0.5;
  19.        done;
  20.    fi;
  21. else
  22.    echo "Project named " $1 " alredy exist.";
  23. fi;


 
Je corrige si non je vais me faire crier dessus.
Merci encore.


Message édité par Profil supprimé le 07-08-2013 à 22:22:03
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed