シェルスクリプトで ROOT にコマンドを渡して開いたままにします。

シェルスクリプトで ROOT にコマンドを渡して開いたままにします。

このプログラムを使用していくつかの分析を実行するためにbashスクリプトを書いています。。いくつかの初期コマンドを実行して分析結果をロードし、ROOTを対話的に使用したいと思います。

解析部分はうまくいっていますが、問題はroot初期命令実行直後に終了する点です。これまで、私は初期コマンドを渡すためにここにファイルがある(EOF)設定を試してみましたが、シェルスクリプトは初めてですROOT。 。つまり、システムプロンプトの代わりにROOTプロンプトを見たいのです。

./runReader.py SummerStd 140PU_NM1 
root -l SummerStd_140PU_NM1_his.root << EOF
TBrowser a;
EOF

上記のコードは分析を実行してから実行されますroot。ただし、すぐに終了し、ROOTプロンプトの代わりにシステムプロンプトがあるため、TBrowserを確認する時間はありません。追加のコマンドを手動で入力できるように、スクリプトがプログラムにコマンドを送信rootした後、コマンドプロンプトで制御を維持したいと思います。TBrowser

ベストアンサー1

次のことができます。

expect -c 'spawn -noecho root -l SummerStd_140PU_NM1_his.root
           send "TBrowser a;\r"
           interact'

おすすめ記事