Buenas a todos, tengo un pequeño problemilla, que necesito que me echéis un cable.
Este es el script
#########################################
#!/bin/bash
# Script para borrar una cinta de backup y etiquetarla
#########################################
#Con esto borramos la cinta
mt -f /dev/nst0 erase
echo La cinta se ha borrado correctamente.
#mostramos el argumento a ver si lo ha cogido bien y está OK
echo El argumento introducido es: $1
#el argumento entra correctamente en la variable
#########################################
#Lo bueno es que hay que comparar la variable $1 que
#contiene el parámentro introducido por teclado con dos
#cadenas, lo que se introduce como parámetro,
siempre será
#backup_increm[0-9] (de 0 a 9, backup_increm0,1,....) o
#backup_full[0-9], por lo que la única parte de la cadena que
#coincide es: backup_increm ó backup_full.
#########################################
if [ $1 = backup_increm ]; then
#Etiquetamos como backup_increm0
amlabel -f incremental $1
echo Se etiqueta como incremental y empieza la copia
else
if [ $1 = backup_full ]; then
amlabel -f full $1
echo Se etiqueta como full y empieza la copia
else
echo El parametro introducido no es valido.
fi
fi
########################################
Se me había ocurrido que cogiera sólo esta parte para la condición de los if:
backup_incr
backup_full
si sólo se comparan estas partes, tienen el mismo número de caracteres, ya que probando con comodines * ó ?, no los reconoce y siempre me salta al final.
La ejecución sería:
./cop_seg backup_increm3
La cinta se ha borrado correctamente
El argumento introducido es: backup_increm3
El parametro introducido no es valido
La pregunta es:
¿Cómo hago para que me compare toda la cadena sin tener en cuenta el número del final?
Ideas???
Gracas.
Zokko