Linux/Unix Shell Scripting - help I need somebody here!

 
Vista:
sin imagen de perfil

help I need somebody here!

Publicado por me (6 intervenciones) el 09/01/2007 23:12:37
Hola que tal, salu2 a todos en el foro, saben estoy haciendo un script para poder automatizar el cambio de nombre de grupo de trabajo para samba, para poder comunicar un equipo linux y uno winxp. Ya tengo casi todo finalizado solo tengo un problema en la estructura:

sed 's/will part of/will part of \ workgroup = $nuevo_grupo_de_trabajo_del_usuario/g' /etc/samba/smb.ok >/etc/samba/smb.conf

donde $nuevo_grupo_de_trabajo_del_usuario es la variable donde se almaceno el nuevo nombre del grupo de trabajo.
¿Aguien sabe por no se logra escribir el nombre correcto del nuevo grupo de trabajo dado por el usuario, en el archivo de configuracion??' Ya probe todo el script linea por linea y solo falla la anterior mostrada en particular.

El problema radica en que con el valor dado a la variable que almacenada el nuevo nombre del grupo de trabajo y quiero mandarla a la linea sed para que la escriba en el archivo de configuracion, pero no lo hace, lo manda solo cual si fuera una cadena-

A continuacion dejo todo el script completo para que lo prueben y haber si pueden encontrar el error.1000 gracias por su ayuda y compresion



#! /bin/sh

#Creamos una variable para almacena el nuevo grupo de trabajo

nuevo_grupo_de_trabajo_del_usuario= kdialog --title "Entorno de trabajo en red" --inputbox "Cual es el grupo de trabajo al cual pertenece este equipo" "INICIOMS"
#Este cuadro de dialogo regreso lo que se introdujo en el cuadro de texto con echo $

echo $nuevo_grupo_de_trabajo_del_usuario

#Cave hacer mencion que este cuadro de dialogo regresar ciertos valores dependiendo de la respuesta, es decir si, el usuario presiona aceptar regresara el dialogo un valor de zero, si da cancelar regresara un valor diferente a cero
#echo $?

#ejemplo

if [ $? = 0 ]; then
echo " you selected: OK"
sudo cp /etc/samba/smb.conf /etc/samba/smb.ok
kdialog --msgbox "Se clono smb.conf a smb.ok correctamente"

cd /etc/samba/
#LE cambamos los permisos al achivo de configuracion si no, nos dejara hacer nada
sudo chmod 777 /etc/samba/smb.conf

#Con greep buscamos la linea donde aparesca workgroup = , ya que la encuentra la borra
grep -v "workgroup = " smb.ok >smb.conf
kdialog --msgbox "Se borro la linea workgruop = en smb.conf correctamente"

#Hasta aki ya tenemos el achivo smb.conf sin la linea workgruop = , pero aun tenemos a smb.ok con la linea workgruop =, asi que solo vamos a borrar a smb.ok que es el archivo que no esta actualizado, y solo vamos a clonar en el mismo nivel de directorio a smb.conf
sudo rm -f /etc/samba/smb.ok
kdialog --msgbox "Borramos el smb.conf no actualizado"

sudo cp /etc/samba/smb.conf /etc/samba/smb.ok
kdialog --msgbox "volvemos a clinar smb.conf a smb.ok"


echo $nuevo_grupo_de_trabajo_del_usuario

sed 's/will part of/will part of \ workgroup = nuevo_grupo_de_trabajo_del_usuario/g' /etc/samba/smb.ok >/etc/samba/smb.conf
kdialog --msgbox "Se agrego el nuevo grupo de trabajo correctamente"

sudo rm -f /etc/samba/smb.ok
cd /etc/init.d
kdesu ./samba restart

else
echo " you selected: Cancel"
fi
Valora esta pregunta
Me gusta: Está pregunta es útil y esta claraNo me gusta: Está pregunta no esta clara o no es útil
0
Responder

RE:help I need somebody here!

Publicado por Tom (361 intervenciones) el 10/01/2007 16:52:01
Si miras la documentación de bash, verás que una variable no se sustituye si está entre comillas simples.

Prueba así:
sed 's/will part of/will part of \ workgroup = '$nuevo_grupo_de_trabajo_del_usuario'/g' /etc/samba/smb.ok >/etc/samba/smb.conf
Valora esta respuesta
Me gusta: Está respuesta es útil y esta claraNo me gusta: Está respuesta no esta clara o no es útil
0
Comentar