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_