Función Bash en ubuntu

Tengo estas funciones en mi .bash_profile en la instancia del server ubuntu en google cloud para tirar y empujar la twig git

plb(){     branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')     git pull origin $branch } psb(){     branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p')     git push origin $branch } 

si ejecuto la línea de código individualmente, entonces el trabajo funciona correctamente, pero cuando bash ponerlo en una function, muestra el siguiente error

 $ plb : command not found : command not found 

¿Qué estoy haciendo mal aquí, gracias de antemano

Salida del command: –

 rohan@staging:~$ proj rohan@staging:/var/www/staging/Server/www$ branch=$(git branch | sed -n -e 's/^\* \(.*\)/\1/p') rohan@staging:/var/www/staging/Server/www$ echo $branch staging rohan@staging:/var/www/staging/Server/www$ plb : command not found : command not found rohan@staging:/var/www/staging/Server/www$ 

¿Has reiniciado tu session? .bash_profile no se vuelve a leer automáticamente cuando lo modifica. Puedes recargar manualmente si emites un command como . ~/.bash_profile . ~/.bash_profile en el símbolo del sistema.

Las funciones deben cargarse en la memory antes de ser llamadas, y llamar a una function no provoca automáticamente que se lea el file donde se define (el shell no sabe en qué file se encuentra de todas maneras una function específica). Cuando la function se define dentro del script desde el que se llama, su definición debe preceder a su uso, por la misma razón: el shell no saltará en el file de script para encontrar una function que aún no se haya definido.