watch 명령의 Linux 사용자 정의 별칭?

watch 명령의 Linux 사용자 정의 별칭?

다른 대기열을 모니터링하기 위해 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.

관련 정보