Ejemplo de leer un archivo linea por linea:
while read linea ; do echo linea: $linearead -p '[ENTER] para continuar' tecla </dev/ttydone < .bash_profile...
Trabajar con archivos que contienen espacios puede ser un dolor de cabeza con
bash.
Aquí dejo un ejemplo de como hacerlo.
En este ejemplo vamos a buscar los archivos que subversion nos indica que han
sido modificados:
# Se definie el fin de linea como el separador entre parámetros
DIFS="$IFS" ; IFS=$'n'
echo
for x in $(svn status | grep ^M | awk -v FS='M ' '{printf "n%s",$2}') ; do
echo - "$x"
parametros="$parametros '$x'"
done
IFS="...
Cambiando el contenido de la variable IFS podemos conseguir que el cat <archivo> nos devuelva una linea entera sin tener en cuenta los espacios.
ejemplo:
DIFS="$IFS" # separador fin de linea para que salga linea por lineaIFS=$'n'for x in $(cat $PROYECTO | grep -v ^# )do can=$(echo $x | awk -v FS="/" '{print $(NF)}') echo "($conta) $can" CANCIONES["$conta"]="$can" let conta=$conta+1doneIFS="$DIFS"
otro ejemplo:
elegirArchivo() { ## Nos permite elejir un arch..
if [ `tty` ] ; then echo 'Estamos en consola'else xterm -e "echo No estamos en consola; read" echo 'No estamos en consola'fi
Colocando esta linea en la cabecera de un script conseguimos detectar si estamos en consola, y en caso de no estarlo nos lanza una terminal
[[ `tty` ]] || ( ( exec ${TERM:-xterm} -e "$0 $* ; read" & ) ; exit )
Con ${TERM:-xterm} en caso de tener una terminal definida se lanzara con ella sino con xterm...
Listar ficheros abiertos
lsoft
-p Pid del proceso
-u usuario
Repetir comandos
watch ls
Repite el comando constantemente...
Zenity nos puede servir para aquellos scripts que lanzamos en segundo plano y no vemos la salida que produce el script.
Un ejemplo sencillo:
#!/bin/bash DIR_MANUAL=/home/eduardo/Documents/doc/programacion/programacionWeb/php/##################################################### VARIABLESCONF="${HOME}/.$0rc"# comienza color cc=" 33[0;33m"# termina colorfc=" 33[0m"####################################################function ejecutarComandoX() { # Comprobar la salida de los comandos #...
Comando de ejemplo para enscript
Creación de caratula con listado de las canciones de un directorio
Generamos listado en archivo temporal
ls -R > /tmp/caratula.txt
Generamos imagen
enscript -b "Los Planetas" -1 -j --margins=35:230:35:40 -f "Times-Roman@8" -p /tmp/caratula.ps /tmp/caratula.txt
Tamaño de letra más grande
enscript -b "Los Planetas" -1 -j --margins=35:230:35:40 -f "Times-Roman..
Con cut podemos cortar las lineas de un fichero de diferentes maneras:
echo "Eduardo Magrané" | cut -c3 # Devuelve el carácter numero 3 (la u)
echo "Eduardo Magrané" | cut -d' ' -f2 # Devuelve el apellido
Opciones:
-c
puede recibir un patrón -c3-5 sera del 3 al 5
-d
Indicas el limitador entre campos
-f
Numero de campos también puede ser un patrón....