
다른 대기열을 모니터링하기 위해 watch 유틸리티에서 사용자 정의된 별칭 명령을 사용할 수 없습니다. 명령을 찾을 수 없다고 합니다. watch 유틸리티에서 별칭 명령을 사용할 수 있는 방법이 있습니까?
$ alias lq='ls -lhrt /home/foo/stat/*.msg'
$ watch lq
sh: lq: command not found
답변1
쉬운 대답은 없습니다. 제가 할 수 있는 최선은기능 watchany
다음을 포함:
watchany() { alias "$1" 2>/dev/null| \
( t=`line`; if [ -n "$t" ]; then t=${t#*=\'}; t=${t%\'}; shift; \
watch $t "$@"; else watch "$@"; fi ) }
하위 쉘에서의 처리를 피하기 위해서는 함수여야 합니다(대괄호도 ()
같은 이유입니다). 에 추가할 수 있습니다 .bashrc
.
끝까지 추구하지는 않았지만 위와 같이 공백이 포함된 파일이나 추가 매개변수에서는 제대로 작동하지 않습니다. 이것이 문제라면 스스로 자세히 설명해야 할 것입니다.
원하는 대로 작동하고 있다고 확신하면 watch
함수에서 $(which watch)
및 로 바꿀 수 있습니다 alias watch=watchall
.
보고 싶은 별칭이 하나 또는 두 개뿐인 경우 다음과 같은 추가 별칭을 추가하는 것이 가장 쉽습니다.
alias watchlq='watch ls -lhrt /home/foo/stat/*.msg'
watchlq
물론 변경 사항이 있으면 변경해야 한다는 점을 기억해야 합니다 lq
.