La función funciona desde la línea de comando pero no desde el script.

La función funciona desde la línea de comando pero no desde el script.

Tengo un archivo de script de Shell que inicia un servidor de desarrollo Ruby y establece el título de la ventana. Por alguna razón no funciona en OS X pero sí en Ubuntu.

Aquí está mi guión:

[10:24:48] [user@mac site_web]$ tail ./sdev.sh
#!/bin/bash
title "dev server port 3000"
RAILS_ENV=development rails s -p 3000 --debugger

Se ejecuta bien desde la línea de comando, pero falla desde el script.

[10:18:17] [user@mac site_web]$ title "dev server" 
title changed
[10:18:29] [user@mac site_web]$ ./sdev.sh
./sdev.sh: line 2: title: command not found 

Esa última línea es el problema.

Y mi función de título (en mi ~/.bash_profile):

# function for setting terminal titles in OSX
function title {
  printf "\033]0;%s\007" "$1"
  echo "title changed" 
}

¿Necesito hacer esto de manera diferente porque está en OSX?

Editar: Intenté agregar la función de título a /Users/[me]/.bashrc y sigo recibiendo el error.

Respuesta1

No tengo una Mac disponible para probar esto, pero ¿qué pasaría si incluyeras una referencia a la fuente de la función en tu script?

#!/bin/bash
. $HOME/.bash_profile
title "dev server port 3000"
RAILS_ENV=development rails s -p 3000 --debugger

http://ubuntuforums.org/showthread.php?t=664657

información relacionada