Функция Bash получает текущую командную строку

Функция Bash получает текущую командную строку

Я часто делаю что-то вроде этого:

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

Я хотел бы иметь макрос для ls -rt <some_dir> | tail -1, но он должен работать в контексте текущей командной строки ( <some_dir>извлекаться из текущей командной строки). Есть ли способ сделать это?

Что-то вроде:

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

решение1

Если вы не привязаны к определению <some_dir>в рамках подкоманды, вы можете добиться того же эффекта с помощью...

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

Причины включают полные пути совпадений, но вам нужен конечный -d, чтобы он возвращалls/*файлывнутри каталога, а не в самом каталоге.

решение2

Используя $0вы получите текущую команду и $*получите параметры. Попробуйте echo $0 $*, поможет ли это. Очевидно, вы можете присвоить их другой переменной, если это необходимо.

Связанный контент