Comandos.- Primera linea de un script de Bash

Los programas en Bash deben tener en la primera linea:

#!/bin/bash

De esa linea #! indica que es debe de ser interpretado por un programa; la ruta que le sigue especifica donde se encuentra el interprete de comandos. Por defecto el Bash se instala en /bin/bash.

 

http://www.gnu.org/software/bash/manual/bashref.html
http://en.wikipedia.org/wiki/Bash
http://www.linux-es.org/node/147

 

Anuncios

2 thoughts on “Comandos.- Primera linea de un script de Bash

  1. Que pasa si omitís la primer línea especificando el interprete de comandos? Pregunta de parcial. Usa el que tenes seteado por defecto para el user?

    1. A cada usuario se le asigna una shell en /etc/passwd, hace mucho tiempo leí que en Linux si no especificas el interprete utiliza la shell que tiene por defecto. La única referencia a esto la encontré en http://www.iac.es/sieinvens/SINFIN/CursoUnix/cap8.php

      Hice una prueba haciendo un script en python pero sin indicar el interprete, fallaba en cuanto encontraba un comando desconocido para mi shell, en cambio funcionaba sin problemas cuando utilizaba los de ella. Si haces esta prueba no olvides primero dar permisos de ejecución al script con chmod +X SCRIPT y luego llamarlo con ./SCRIPT

      Un poco más de info:

      Ves el contenido de /etc/passwd con:

      cat /etc/passwd

      Buscas la linea que tiene el nombre del usuario en cuestión:

      TU_USUARIO:x:1000:1000:,,,:/home/TU_USUARIO:/bin/bash

      Ahí me esta diciendo que TU_USUARIO usa la shell de bash (Boune Again Shell). Siempre es el ultimo campo.

      Otra manera es:

      echo $SHELL

      Los interpretes se llaman con shebang (los signos #!) seguido de la ruta de el o con ENV. A veces los script fallan porque los interpretes se encuentran en rutas distintas y con ENV puede estar en cualquier parte y de todas maneras lo encuentra.

      Averiguas el interprete y ENV con:

      whereis INTERPRETE
      whereis env

      A bash también la puedes encontrar con:

      echo $BASH

       

      http://www.iac.es/sieinvens/SINFIN/CursoUnix/cap8.php
      http://wiki.softwarelivre.org/TWikiBar/TWikiBarConversa001
      http://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html
      http://www.cyberciti.biz/tips/finding-bash-perl-python-portably-using-env.html

Responder

Introduce tus datos o haz clic en un icono para iniciar sesión:

Logo de WordPress.com

Estás comentando usando tu cuenta de WordPress.com. Cerrar sesión / Cambiar )

Imagen de Twitter

Estás comentando usando tu cuenta de Twitter. Cerrar sesión / Cambiar )

Foto de Facebook

Estás comentando usando tu cuenta de Facebook. Cerrar sesión / Cambiar )

Google+ photo

Estás comentando usando tu cuenta de Google+. Cerrar sesión / Cambiar )

Conectando a %s