função funciona na linha de comando, mas não no script

função funciona na linha de comando, mas não no script

Eu tenho um arquivo de script de shell que inicia um servidor de desenvolvimento Ruby e define o título da janela. Por alguma razão, não está funcionando no OS X, mas funcionou no Ubuntu.

Aqui está meu roteiro:

[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

Funciona bem na linha de comando, mas falha no 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 

Essa última linha é o problema.

E minha função de título (no meu ~/.bash_profile):

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

Preciso fazer isso de forma diferente porque está no OSX?

Editar: tentei adicionar a função de título a /Users/[me]/.bashrc e ainda estou recebendo o erro.

Responder1

Não tenho um Mac disponível para tentar isso, mas e se você incluísse uma referência à fonte da função em seu 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

informação relacionada