使用shell批处理进行不同参数运算

10 篇文章 0 订阅
<pre name="code" class="plain">#! /bin/sh

Runjob(){

  var1=$1
  folder0="O`printf %0.2f $var1` " 
  filelist="./Dat/grd_xy.grd ./Dat/Ivalue.plt ./Dat/ruvwt.p3d ./Dat/PSE_ZYM.inp"
  folder1="output"
  fileinp="PSE_ZYM.inp"
  varkey="Basis_ome_bat"
  jobcmd1="/localhome/zcb/20151217/Dat/Init_PSE.out >initial.log"
  jobcmd2="/localhome/zcb/20151217/Dat/PSE_v1.2_ext.out >PSE_run.log &"

  #Make dir folder0  ;  ./ -> ./folder0 
  CMD="mkdir  $folder0 ; cp $filelist $folder0 ; cd $folder0 ; mkdir  $folder1"
  eval $CMD
  # awk 'pattern {action} pattern {action}'
  # '$varkey','$var1' when use variables of the shell '' is neccesary 
  awk '/'$varkey'/{$3=“'$var1'”}1{print $0}' $fileinp > tmp ; mv tmp $fileinp
  echo $PWD	
  eval $jobcmd1
  eval $jobcmd2

  cd ..
}

for var in `seq $1 $2 $3` 
do 
Runjob $var |tee -a run_jobs.log
done


 
</pre><pre name="code" class="plain"><pre name="code" class="plain">collectfile(){
  
  #folder name	
  var1=$1	
  folder0=$2
  filename0="Amp_PSE.plt"
  filename1="Bang_Amp_PSE.plt"
  info=$var1

  	

  
  #cd to output folder
  cd $var1

  # check  output folder 
  if [ -d "output" ] ;then
  cd "output" 

  #check if output file is ready
  if [ -f $filename0 ] ;then
      CMD="cp $filename0 $folder0/$var1-$filename0"
	eval $CMD
	info="$info Done..."
  fi

  if [ -f $filename1 ] ;then 
	CMD="cp $filename1 $folder0/$var1-$filename0"
	eval $CMD
	info="$info Bang..."
  fi

  cd ..

  fi
  cd ..
  	echo $info

}

folder0="/localhome/zcb/PSE_calc/Amp_check"
#echo $folder0
CMD="mkdir -p $folder0"
eval $CMD
for var in `ls -d */` 
do 
	
	var=${var%?} #cut the last character '/'
	collectfile $var $folder0 |tee -a $folder0/collect.log
done



                
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值