No momento, o uso local
no shell de nível superior falha:
/tmp/tmp.TvdqDYLG9T$ local x=1
bash: local: can only be used in a function
/tmp/tmp.TvdqDYLG9T$ echo $x
/tmp/tmp.TvdqDYLG9T$
Minha justificativa para querer que funcione é que quero testar minha função bash copiando/colando fragmentos do código no console do shell e testando-o lá. Mas eu não posso, por causa do local
. Tenho que colar primeiro em um bloco de notas, remover local
e depois colar no console.
Existe uma maneira melhor?
Se for apenas um teste único, alias, por exemplo, com
alias local=
. Apenas lembre-se de fechar esse shell depois de terminar o teste, pois qualquer definição de função posterior estaria faltando elocal
isso poderia trazer alguns efeitos estranhos.Como alternativa, e com mais segurança, alias
local
paradeclare
, que funciona praticamente da mesma forma quelocal
dentro de uma função, mas também funciona no nível superior. Então,alias local=declare
.