Jump to content

consulta sobre case en bash (LINUX)


Recommended Posts

Estimados tengo muchas consultas pero la principal es la siguiente

 

nesecito realizar un script que haga lo siguiente

 

 

1. Crear TRES directorios con orden dado por el usuario

2. Crear archivos de tipo texto en cualquiera de los directorios

3. Copiar y/o mover archivos entre directorios

4. Crear un enlace hacia cualquier archivo

5. Agregar información a un archivo almacenado

6. Cambiar permisos a cualquier archivo almacenado

7. Crear cuentas de usuario y de grupo

8. Cambiar usuario y grupo a cualquier archivo almacenado

 

 

Cree el primer menu (con case) y el segundo que es para crear directorios

lo que no he podido hacer es que al terminar el segundo case (creando los directorios y usando la opcion para salir) retroceda al "menu principal"

 

Les agradeceria una ayuda porfavor

 

les pego el script que llevo

 

(por ahi lei que pusier aun do while pero no me funciono

 

 

 

#!/bin/bash

echo "1. Crear Directorio"

echo "2. Crear Archivos"

echo "3. Crear o mover archivos a directorios"

echo "4.Crear enlace a un archivo"

echo "5. Editar archivo"

echo "6.Cambiar permisos de archivos"

echo "7.Crear cuenta de usuario y grupo"

echo "8.Cambair usuario y grupo a cualquier archivo"

echo "9. Salir"

echo -n "ingrese una opcion: "

read opcion

echo

case $opcion in

1) do {

echo "1. Crear directorio uno dentro de otro"

echo "2. Arbol de directorios"

echo "3. Directorios independientes"

echo "4.salir"

echo -n "ingrese una opcion: "

read op

echo

case $op in

1) echo -n "ingrese nombre de 1º directorio: "

read directorio

mkdir $directorio

echo -n "Segundo directorio"

read directorio2

mkdir $directorio/$directorio2

echo -n "Ingrese nombre del tercer directorio"

read directorio3

mkdir $directorio/$directorio2/$directorio3;;

 

2) echo -n "Ingrese nombre del directorio : "

read directorio

mkdir $directorio

echo -n "crear 2º dir"

read directorio2

mkdir $directorio/$directorio2

echo -n "crear 3º dir"

read directorio3

mkdir $directorio/$directorio3;;

3) echo -n "ingrese numbre 1º dir"

read directorio

mkdir $directorio

echo -n "ingrese nom segun dir"

read directorio2

mkdir $directorio2

echo -n "ingrece etrcer dir"

read directorio3

mkdir $directorio3;;

 

4) exit;;

esac

}while ($op -le 4)

esac

 

 

 

Link to comment
Share on other sites

¿Algo como esto? :tontotv:

 

#!/bin/bash
while (true) do
   echo "1. Crear Directorio"
   echo "2. Crear Archivos"
   echo "3. Crear o mover archivos a directorios"
   echo "4.Crear enlace a un archivo"
   echo "5. Editar archivo"
   echo "6.Cambiar permisos de archivos"
   echo "7.Crear cuenta de usuario y grupo"
   echo "8.Cambair usuario y grupo a cualquier archivo"
   echo "9. Salir"
   echo -n "ingrese una opcion: "
   read opcion
   echo
   case $opcion in
    1)
    echo "1. Crear directorio uno dentro de otro"
    echo "2. Arbol de directorios"
    echo "3. Directorios independientes"
    echo "4.salir"
    echo -n "ingrese una opcion: "
    read op
    echo
    case $op in
		    1)	  
		    echo -n "ingrese nombre de 1º directorio: "
		    read directorio
		    mkdir $directorio
		    echo -n "Segundo directorio"
		    read directorio2
		    mkdir $directorio/$directorio2
		    echo -n "Ingrese nombre del tercer directorio"
		    read directorio3
		    mkdir $directorio/$directorio2/$directorio3;;
		    2)	    
		    echo -n "Ingrese nombre del directorio : "
		    read directorio
		    mkdir $directorio
		    echo -n "crear 2º dir"
		    read directorio2
		    mkdir $directorio/$directorio2
		    echo -n "crear 3º dir"
		    read directorio3
		    mkdir $directorio/$directorio3;;
		    3)	  
		    echo -n "ingrese numbre 1º dir"
		    read directorio
		    mkdir $directorio
		    echo -n "ingrese nom segun dir"
		    read directorio2
		    mkdir $directorio2
		    echo -n "ingrece etrcer dir"
		    read directorio3
		    mkdir $directorio3;;
		    4)
		    continue
    esac
   esac
done

Edited by juiko
Link to comment
Share on other sites

Exacto muchisimas gracias!!!

 

 

ahora a agregar las otras opciones :D

 

 

*-********

 

 

 

Disculpa ¿como podria realizar el punto dos?

 

había pensando en algo asi

 

 

2)echo "Ingerese nombre del directorio creado donde desea el primer archivo"

read directorio

read directorio2

read directorio3

cd $directorio or $directorio2 or $direcotio3

read archivo

 

touch $archivo;;

 

 

pero me da un error

Edited by satorus
Link to comment
Share on other sites

No se si es esto lo que quieres hacer :tontotv:

 

#!/bin/bash

echo "¿Donde quieres crear el archivo?"
read directorio
if [ -e $directorio ]; then
echo "¿Nombre del archivo?"
read archivo
echo > $directorio/$archivo
else
echo "No existe el directorio ... chau";
fi

Edited by juiko
Link to comment
Share on other sites

mira hasta ahora llevo este

 

 

 

 

 

 

#!/bin/bash

clear

while (true) do

echo

echo

echo

 

menu()

{

echo

echo " Menu de directorios"

echo

echo "1.Crear directorio lineal"

echo "2.Crear directorio arbol"

echo "3.Crear directorio cadena"

echo

echo "Menu de manejo de usuario"

echo

echo "4.Crear archivo"

echo "5.Crear copia de archivo"

echo "6.Mover archivo"

echo "7.Crear un enlace a un archivo"

echo "8.Agreagar informacion"

echo "9.Asignar permisos"

echo "10.Crear cuentas de usuario"

echo "11.Crear cuentas de grupo"

echo "12.Cambiar ususario y grupo a cualquier archivo"

echo "13.Salir"

echo

echo -n "ingrese su opcion:"

read op

 

}

menu

case $op in

1) echo -n "ingrese nombre del primer directorio :"

read directorio

mkdir $ directorio

echo -n " ingrese nombre del segundo directorio :"

read directorio2

mkdir $directorio2

echo -n "ingrese nobre tercer directorio :"

read directorio3

mkdir $directorio3;;

2) echo -n "ingree nombre del primer directorio :"

read directorio

mkdir $directorio

cd $directorio

echo -n "ingrese nombre del segundo directorio :"

read directorio2

mkdir $directorio2

cd $directorio2

echo -n "ingrese nombre del tercer dirct :"

read directorio3

mkdir $directorio3;;

3) echo -n "ingrese nombre del primer directorio :"

read directorio

mkdir $directorio

cd $directorio

echo -n "ingrese ombre del segundo directorio :"

read directorio2

mkdir $directorio2

echo -n "ingrese nombre del tercer directorio :"

read directorio3

mkdir $directorio3;;

4) echo -n "ingrese nombre del archivo :"

read nombre

echo -n " ingrese el directorio donde quedara el archivo:"

read directorio

cd $directorio

touch $nombre;;

5) echo -n "ingrese nombre del archivo que desea copiar:"

read nombre

echo -n "ingrese nombre del directorio de origen de el archivo:"

read cop

echo -n "ingrese nombre del directorio donde copiara el archvo:"

read peg

cp $cop/$nombre $peg;;

6) echo -n "ingrese nombre del archivo de desea mover:"

read nombre

echo -n "ingrese nombre del directo de origen del archivo:"

read cop

echo -n "ingrese nombre de directorio donde copiara el achivo:"

read peg

mv $cop/$nombre $peg;;

 

 

7) echo -n "ingrese el nombre del archivo que desea enlazar"

read nom

echo -n "ingrese el nombre del enlace"

read nom_enlace

ln $nom $nomenlace;;

 

8) echo -n "ingrese nombre del archivo:"

read nombre

echo -n "ingrese nombre del directorio de origen del archivo:"

echo "Recuerde salir con CTRL+D"

 

read cop

cat > $cop/$nombre;;

9) echo -n "ingrese nombre del directorio de origen del archivo:"

read nom_ar

echo -n "ingrese permisos:"

read perm

chmod $perm $nom_ar;;

 

 

10) echo -n "ingrese nobre de usuario:"

read user_name

echo -n "ingrese pass:"

read pass

adduser $user_name

pass $pass;;

11) echo -n "ingrese nombre de grup:"

read nom_grup

addgroup $nom_grup;;

 

12) echo -n "ingrese nombre del archivo que desee cambiar:"

read nom_arc

echo -n "ingrese nuevo usuario y grup:"

chown $usu_gru $nom_arc;;

13) exit;;

 

esac

 

done

 

 

 

 

 

 

 

 

pero nos e como usar dos menus y me ira error con copia ry mover archivos y el enlace creo que esta mal tambien

 

me gustaria también que al copiar no fuese necesario ingresar la ruta de el archivo a copiar , osea que se buscase solo

Link to comment
Share on other sites

Create an account or sign in to comment

You need to be a member in order to leave a comment

Create an account

Sign up for a new account in our community. It's easy!

Register a new account

Sign in

Already have an account? Sign in here.

Sign In Now
×
×
  • Create New...