![Bash 함수는 현재 명령줄을 가져옵니다.](https://rvso.com/image/1317559/Bash%20%ED%95%A8%EC%88%98%EB%8A%94%20%ED%98%84%EC%9E%AC%20%EB%AA%85%EB%A0%B9%EC%A4%84%EC%9D%84%20%EA%B0%80%EC%A0%B8%EC%98%B5%EB%8B%88%EB%8B%A4..png)
나는 종종 다음과 같은 일을 합니다.
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 $*
. 필요한 경우 분명히 다른 변수에 할당할 수 있습니다.