O problema é o ponto-e-vírgula final que precisa ser removido.
startlivy() { cd /git/livy; nohup bin/livy-server > /tmp/livy.log 2>&1 & }
Eu tenho um comando para iniciar o livy-server
que funciona diretamente na linha de comando:
$cd /git/livy; nohup bin/livy-server > /tmp/livy.log 2>&1 &
[1] 4370
19:11:11/livy $
19:11:12/livy $ll /tmp/livy.log
-rw-r--r-- 1 boes wheel 436 Jan 26 19:11 /tmp/livy.log
Mas não não de uma função. No meu ~/.profile
existe uma função para iniciar o livy-server
:
startlivy() { cd /git/livy; nohup bin/livy-server > /tmp/livy.log 2>&1 & ; }
/Users/boescst/.profile: line 432: syntax error near unexpected token ';'
-bash: /Users/boes/.profile: line 432: 'startlivy() { cd /git/livy; nohup bin/livy-server > /tmp/livy.log 2>&1 & ; }'
Os &
E comercial precisam ser escapados de alguma forma?
BTW, embora isso provavelmente não afete o resultado - estou em El Capitan
.
Parece que o problema ocorre apenas quando se tenta usar um one-liner: ou seja, o seguinte faz funcionar:
startlivy() {
cd /git/livy
nohup bin/livy-server > /tmp/livy.log 2>&1 &
}
Nota: se alguém souber como lidar com isso em um forro, eu gostaria de saber - e premiará.
Tags bash shell-script