Bash: redirecionamento ambíguo

1

Eu estou tentando coletar o despejo do processo Java com jstack e tentei abaixo do comando. Mas está dizendo ambiguous redirect porque não posso redirecionar para um comando.

 jstack -l 'pgrep java' > /tmp/TD_'hostname'_'date'_'pgrep java'
-bash: /tmp/TD_'hostname'_'date'_'pgrep java': ambiguous redirect

Existe alguma solução alternativa que eu possa conseguir usando o threaddump em um único comando de linha com data e Java PID anexado ao nome do arquivo threaddump?

    
por rɑːdʒɑ 26.12.2015 / 11:30

1 resposta

4

Sua saída de substituição de comando provavelmente tem espaços, levando à divisão de campo, etc. Use aspas:

$ echo foo > /tmp/TD_'hostname'_'date'_'pgrep java'
bash: /tmp/TD_'hostname'_'date'_'pgrep java': ambiguous redirect
$ echo foo > /tmp/"TD_'hostname'_'date'_'pgrep java'"
$ ls /tmp/TD*
/tmp/TD_muru-arch_Sat 26 Dec 16:14:29 IST 2015_
    
por 26.12.2015 / 11:46