crear script

hola gente estoy tratando de crear un script que me pida el nombre del directorio y vaya creando directorios dentro del directorios dentro del direrctorio personal del usuario.
en caso de que no pongas nada o sea pulses enter se cierrre y deje de crear.
es para linux y el codigo qur tengo ahora es esto , haber si alguien me puede ayudar
gracias

#!bin/bash
clear
echo "introduce el nombre de un directorio $1 "
read directorio
mkdir $HOME/$directorio
cp -R $1 /* $HOME/$directorio
echo "archivo creado"
has probado a poner un condicional "fi"??? (un if de to la vida).
te lo pongo en c mas o menos porque script hace 1 año que no hago :D

if(strcmp($1,"")) //Si la cadena que guarda $1 es igual a "(nada escrito)", entonces fin del programa...
{
system("pause"); // Sorry se me escapó, la constumbre de programar C en Guindows xD
return 0;
}

Tío no se si te estoy diciendo una tontería pero es lo primero que se me a venido a la cabeza
Sólo mete un bucle con una condición, por ejemplo (pseudocódigo):

leer cadena
mientrasQue cadena != cadena_vacia hacer
  operaciones
  leer cadena
finMQ


Para saber si una cadena está vacía, sólo tienes que usarla como condición, por ejemplo (bash):

read var
if [ "$var" ]; then
  echo "cadena NO vacía: $var"
else
  echo "cadena vacía"
fi


Hay otras formas. Son dudas muy básicas, te aconsejo que te mires cualquier manual de bash, hay miles, por ejemplo: http://www.etxea.net/docu/taller_bash/bash.html

Iverson88 escribió:system("pause");


Sacrilegio ratataaaa ratataaaa
Si no te importa que el final en vez de ser con un enter sea con un control+D, se me ocurre una solución muy corta:

#!/bin/sh
echo "Escriba los nombres de los directorios separados por espacio o en nueva línea.
Pulse ^D en una línea vacía si quiere acabar"
mkdir `cat`


Eso sí, no hay control de errores. Si quieres crearlos en el directorio personal, incluye un "cd ~" antes del mkdir.
3 respuestas