Função Bash obtém linha de comando atual

Função Bash obtém linha de comando atual

Costumo fazer algo assim:

tail -f logs/`ls -rt logs | tail -1`/debug.log

Eu gostaria de ter uma macro para ls -rt <some_dir> | tail -1, mas ela precisa funcionar no contexto da linha de comando atual ( <some_dir>sendo extraída da linha de comando atual). Existe uma maneira de fazer isso?

Algo como:

tail -f logs/$(LAST)/debug.log

Responder1

Se você não está vinculado à determinação <some_dir>de um subcomando, poderá obter o mesmo efeito com...

tail -f `ls -drt logs/* | tail -1`/debug.log

As -dcausas lsincluem caminhos completos de correspondências, mas você precisa do rastreamento /*para que ele retorne oarquivosdentro do diretório em vez do próprio diretório.

Responder2

Usar $0fornecerá o comando atual e $*os parâmetros. Tente echo $0 $*ver se isso ajuda. Obviamente você pode atribuí-los a outras variáveis, se necessário.

informação relacionada