Bash:あいまいなリダイレクト

Bash:あいまいなリダイレクト

jstackを使用してJavaプロセスのダンプを収集しようとしましたが、次のコマンドを試しました。しかし、ambiguous redirectコマンドにリダイレクトできないと言います。

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

1行のコマンドでスレッドダンプを取得し、日付とJava PIDをスレッドダンプファイル名に追加する回避策はありますか?

ベストアンサー1

コマンド置換出力にスペースがあり、フィールド分割などが発生する可能性があります。引用符を使用する:

$ 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_

おすすめ記事