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 $*. 필요한 경우 분명히 다른 변수에 할당할 수 있습니다.

관련 정보