\-\adEs escribió:Vale, una cosa aclarada sh != tcsh
(mira que puedo llegar a ser cateto....)
Entonces sh es una extension de bash, ¿no? pero si es asi..... ¿no deberian de crearse los programas en bash en vez de sh? al ser una extension tendria que ser mas completo (corregirme si me equivoco).
No, es al revés. bash es un sh con extensiones; es decir, bash tiene todo lo que tiene sh y, además otras funcionalidades. Por ejemplo, me parece que "sh" no tiene expansión de parámetros; mientras que bash sí que la tiene. ¿Qué significa esto? Pues que en bash, a la variable:
FOTO="nombre.JPG"
le quiero cambiar el "JPG" por "jpg" me basta hacer:
FOTO="${FOTO%.JPG}.jpg"
mientras que en sh me las tendría que apañar ejecutando sed en una subshell:
FOTO=$(echo $FOTO | sed 's/JPG$/jpg/')
Evidentemente lo segundo es más engorroso.
¿En qué tienes que programar tus script? Pues depende de tus necesidades. Si una de tus prioridades es que el script sea muy, muy portable, lo mejor es que no uses las extensiones de bash. Sin embargo, si prevés que tus script sólo se van a ejecutar en linux, lo más probable es que sea más adecuado que emplees las extensiones de bash, puesto que en los linux bash es el entorno shell por defecto.