Ele não sabe qual é a origem exata do seu problema, mas seu código está em um território não especificado aqui.
-
function tj()
não é uma sintaxe de definição de função padrão, nem a sintaxe Bourne / POSIX (que usatj()
) nem a sintaxe Korn (que usafunction tj
sem()
). Algumas shells (bash, zsh, pdksh) suportam principalmente por acidente. -
tail -100f
não é especificado pelo POSIX. A sintaxe POSIX étail -f -n 100
- POSIX
tail
leva no máximo um argumento, o comportamento não é especificado se você passar mais de um argumento. Algumas implementações, como o GNUtail
, podem assistir a mais de um arquivo em paralelo, mas muitas outras não. Você poderia tentar instalar comandos semelhantes à cauda projetados para isso comomultitail
-
$(find...)
chama o operador split + glob, portanto, com o valor padrão$IFS
, isso não funcionaria corretamente se algum dos caminhos de arquivo contivesse espaço, tabulação, nova linha ou caracteres curinga. Sefind
não retornar nenhum arquivo, ele também terminarátail
ing stdin.
Aqui você pode usar zsh
e definir o comando como
tj() multitail ./**/*.o$1(.)
Ele relataria um erro se não houvesse nenhum arquivo correspondente (em oposição a tail
ing stdin). Observe também que, ao contrário de find
, ele fornece uma lista classificada de arquivos e ignora arquivos ou arquivos ocultos em diretórios ocultos (adicione o qualificador D
glob, se desejar).
Agora, se, de acordo com sua edição, você ver >
quando executar tj
, quando >
for o prompt secundário padrão ( $PS2
), será mais provável que você tenha um alias também definido para tj
(esse pseudônimo provavelmente definido após a definição da função tj
ou caso contrário, isso teria causado um erro na definição da função tj
).
Por exemplo, é o tipo de coisa que você veria se tivesse executado:
alias tj='for sure'
(um loop for
não terminado), ou qualquer código que não seja auto-contido e para o qual o shell emitiria um prompt secundário para você terminá-lo.
Você pode indefinir esse alias com unalias tj
(e remover sua definição do seu ~/.bashrc
se ele estiver lá, para que ele não volte na próxima vez que você executar bash
).
Claro, também há sempre a possibilidade de que o único arquivo *.o1234
encontrado contenha apenas >
.