Alias ​​customizado do Linux no comando watch?

1

Não consigo usar meu comando de alias personalizado no utilitário watch para monitorar filas diferentes. Ele diz que o comando não foi encontrado. Existe alguma maneira de usar o comando alias no utilitário watch?

$ alias lq='ls -lhrt /home/foo/stat/*.msg'

$ watch lq
sh: lq: command not found
Ashok
fonte

Respostas:

1

Não há uma resposta fácil: o melhor que pude fazer foi adicionar uma função watchany contendo:

watchany() { alias "$1" 2>/dev/null| \
  ( t=`line`; if [ -n "$t" ]; then t=${t#*=\'}; t=${t%\'}; shift; \
    watch $t "$@"; else watch "$@"; fi ) }

Ele precisa ser uma função para evitar o processamento em uma subcasca (e os ()colchetes são pelo mesmo motivo). Você pode adicioná-lo a .bashrc.

Eu não o busquei ao máximo, mas, como acima, ele não funciona corretamente com arquivos ou parâmetros extras que contêm espaços em branco incorporados. Se isso for um problema, você terá que elaborar você mesmo.

Quando você se convencer de que está funcionando como deseja, poderá substituir watcha função por $(which watch)e depois alias watch=watchall.

Se você deseja assistir apenas a um ou dois aliases, provavelmente é mais fácil adicionar aliases extras, como:

alias watchlq='watch ls -lhrt /home/foo/stat/*.msg'

É claro que você precisará se lembrar de mudar, watchlqse alguma vez mudar lq.

AFH
fonte