martes, 2 de octubre de 2007

La gente a veces me pregunta cómo programo scripts en bash útiles, utilizo una base diaria de codigo de reuso para hacer todo con respecto al menejo de archivos, automatizar trabajos de reserva o configurar a gmail como cliente default en slackware.

Es simple - cuando necesito ayuda, doy vuelta a the advanced bash-scripting guide, es uno de los mejores recursos que un usuario de linux puede encontrar en el arte del Shell Scriting. Aquí está un ejemplo de un script que renombra archivos sustituyendo los espacios por guiones-abajo en nombres de archivos que tienen nombres largos con espacios.

#! /bin/bash
# blank-rename.sh
#
# Substitutes underscores for blanks in all
# the filenames in a directory.

ONE=1 # For getting singular/plural right (see below).
number=0 # Keeps track of how many files actually renamed.
FOUND=0 # Successful return value.

for filename in * #Traverse all files in directory.
do
echo "$filename" grep -q " " # Check whether filename
if [ $? -eq $FOUND ] #+ contains space(s).
then
fname=$filename # Yes, this filename needs work.
n=`echo $fname sed -e "s/ /_/g"` # Substitute underscore
# for blank.
mv "$fname" "$n" # Do the actual renaming.
let "number += 1"
fi
done

if [ "$number" -eq "$ONE" ] # For correct grammar.
then
echo "$number file renamed."
else
echo "$number files renamed."
fi

exit 0


Esta guia es sin duda un gran recurso en cuento a la programacion en sistemas linux y ayuda bastante al entendimiento para el uso de los comandos en esos sistemas, realmente la documentacion que mantiene es muy util, diversa, y especializada por lo cual se recomienda su lectura para todo aquel que quiera adentrarse en sistemas con shell bash, el documento lo pueden encontrar en version electronica para descargarlo o para leerlo online.

Advanced bash-scriting guide

1 comentarios :

  1. Anónimo dijo...

    Es una muy buena guia, solo que un poco larga y bastante dificil de seguir para los novatos.