wiki:Documentation/UserGuide/ShellScript

Version 8 (modified by abierjon, 6 weeks ago) (diff)

--

How to write a shell script

Author: S.Luyssaert
Last revised: 2020/02/28, P. Maugis; 2020/05/11, A. Ducharne

A super simple script for recurring tasks

We want to make a script that deletes all the history and restart files from ORCHIDEE so that we can run the next simulation within the same file structure with the same starting time. We will call the command clean.sh.

Open an editor for the command file, i.e. 'clean.sh'

emacs ../bin/clean.sh

Write the linux commands in the editor. Here, we select 'bash' as the shell-interpreter.

#!/bin/bash
rm -f ../Output/*_history.nc ../Restart/*_out.nc ../bin/output.txt

Save the file and change the permissions so the file can be executed

chmod +x clean.sh

You can now type ./clean.sh to execute the linux commands from the file 'clean.sh'

An example with a loop

You have installed two versions of ORCHIDEE and you want to compare the sources with diff. This is done by the following script (written for bash):

#!/bin/sh

ref =$workdir/trunkv1/modipsl/modeles/ORCHIDEE
test=$workdir/trunkv2/modipsl/modeles/ORCHIDEE

for src in parallel global driver stomate parameters sechiba
do

 echo '********************'
 echo $ref
 echo $test
 echo DIFF src_$src
 echo '********************'

 cd $ref/src_$src
 for xx in `ls *.f90`
 do
  echo $xx
  diff -r $xx $test/src_$src/$xx
  echo '------------------------'
 done

done

Another example with a loop

To change the name of multiple files https://forge.ipsl.fr/orchidee/wiki/Documentation/UserGuide/ReName