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

来源:互联网 发布:本地网络协议是什么 编辑:程序博客网 时间:2024/06/07 05:49
<pre name="code" class="plain">#! /bin/shRunjob(){  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.logdone


</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 $CMDinfo="$info Done..."  fi  if [ -f $filename1 ] ;then CMD="cp $filename1 $folder0/$var1-$filename0"eval $CMDinfo="$info Bang..."  fi  cd ..  fi  cd ..  echo $info}folder0="/localhome/zcb/PSE_calc/Amp_check"#echo $folder0CMD="mkdir -p $folder0"eval $CMDfor var in `ls -d */` do var=${var%?} #cut the last character '/'collectfile $var $folder0 |tee -a $folder0/collect.logdone


                                             
0 0
原创粉丝点击