La función Bash obtiene la línea de comando actual

La función Bash obtiene la línea de comando actual

A menudo hago algo como esto:

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

Me gustaría tener una macro para ls -rt <some_dir> | tail -1, pero debe funcionar en el contexto de la línea de comando actual ( <some_dir>que se extrae de la línea de comando actual). ¿Hay una manera de hacer eso?

Algo como:

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

Respuesta1

Si no está atado a determinar <some_dir>dentro de un subcomando, puede lograr el mismo efecto con...

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

Las -dcausas lsincluyen rutas completas de coincidencias, pero necesita el final /*para que devuelva elarchivosdentro del directorio en lugar del directorio mismo.

Respuesta2

El uso $0le proporcionará el comando actual y $*obtendrá los parámetros. Intenta echo $0 $*ver si eso ayuda. Obviamente puedes asignarlos a otra variable si es necesario.

información relacionada