部門 > ROOT > hadd > シェルスクリプトver.2

ver.2をつくった。変更点は
  • hbkファイルの数が10個以上でも対応できるようにした
  • つくりたいのと同名のrootファイルが存在するときに上書きしてもよいか確認するようにした
ver.3までのto doは、Run numberが002とかのファイルについても対応できるようにすること。(相変わらずK本研でしか使えないスクリプトです・・・)
#!/bin/bash
./ELE_Analyzer $1
declare -i i #iは整数とする
i=1
 
while [  -f $1_00$i.hbk ]; #ファイルが存在する番号までループを回す
do
    if [ -f $1_00$i.root ];#rootファイルが存在するときに消していいか許可を求める
    then
	echo "$1_00$i.root exists. Overwrite?[y/n]"
	read ANSWER
	if [ $ANSWER = "y" ];
	then
	    rm $1_00$i.root
	    h2root $1_00$i.hbk
	else
	    echo "Operation canceled."
	    break
	fi
    else
	h2root $1_00$i.hbk
    fi
    rm $1_00$i.hbk #つくったHBKファイルを消す
    source="$source $1_00$i.root" #ROOTファイルを結合するときの元となるファイルを集めた文字列
    i=$i+1
done
 
 
#ファイルが10個以上に分割されたときはこっちのループも回す
#_001を_010などとしただけで中身は一緒
while [  -f $1_0$i.hbk ]; 
do
    if [ -f $1_0$i.root ];
    then
	echo "$1_0$i.root exists. Overwrite?[y/n]"
	read ANSWER
	if [ $ANSWER = "y" ];
	then
	    rm $1_0$i.root
	    h2root $1_0$i.hbk
	else
	    echo "Operation canceled."
	    break
	fi
    else
	h2root $1_0$i.hbk
    fi
    rm $1_0$i.hbk
    source="$source $1_0$i.root"
    i=$i+1
done
 
 
#rootファイルを結合する

 if [ -f $1.root ];#rootファイルが存在するときに消していいか許可を求める
    then
     echo "$1.root exists. Overwrite?[y/n]"
     read ANSWER
     if [ $ANSWER = "y" ];
     then
	 rm $1.root
	 hadd $1.root $source    
	 rm $source #つくったROOTファイルを消す
     else
	 echo "Operation canceled."
	 break
     fi
 
 else
     hadd $1.root $source    
     rm $source #つくったROOTファイルを消す
     
 fi
 
 

タグ:

ROOT Bash
最終更新:2011年10月25日 21:06