[ncl-talk] Running NCL script from shell script

Karin Meier-Fleischer meier-fleischer at dkrz.de
Fri Apr 23 04:50:31 MDT 2021


Hi Bidyut,

the problem is the use of the double quotes. And it would be a better 
way to read the myfile content into an array and use a for loop instaed 
of  'while read', but that is how I would do it. 😉

Because I do not know your NCL script and input file here is a script 
which generates dummy files:

#----------------------------------------
#!/bin/bash

cat << EOF > myfile.txt
Jim
Bob
Ken
EOF

cat << EOF > myfile.ncl
if(.not. isvar("name")) then
    print("Error: missing input 'name'")
else
    print(""+name)
end if
EOF

namelist=$(cat myfile.txt)

for name in $namelist
do
   echo "Input line $i : $name"

   ncl -Q -n name=\""${name}"\" myfile.ncl

   i=$((i+1))
done
#----------------------------------------

Good luck,
Karin

Am 23.04.21 um 05:43 schrieb Bidyut Bikash Goswami via ncl-talk:
> Thank you Brian for your suggestion.
>
> But the problem still persists even when I try
> -------
> cat myfile| while read mname
> do
> ncl myfile.ncl
> done
> -------
>
> I am clueless what can go wrong here.
>
> Regards,
> Bidyut
>
>
> On Fri, Apr 23, 2021 at 5:15 AM Brian Thomas 
> <brian.thomas at washburn.edu <mailto:brian.thomas at washburn.edu>> wrote:
>
>     Not certain, but I think your problem is the quotes around your
>     variable name here:
>     echo "$mname"
>
>     Shouldn't have " " to make it echo out the contents of $mname
>
>     Date: Thu, 22 Apr 2021 14:26:03 +0900
>     From: Bidyut Bikash Goswami <bidyut at yonsei.ac.kr
>     <mailto:bidyut at yonsei.ac.kr>>
>     To:ncl-talk at mailman.ucar.edu <mailto:ncl-talk at mailman.ucar.edu>
>     Subject: [ncl-talk] Running NCL script from shell script
>     Message-ID:
>     <CAOxJJSdjyHjprWvM-0C8Y20dp1dtEisfiwYzqRdj+OhOts6PqQ at mail.gmail.com
>     <mailto:CAOxJJSdjyHjprWvM-0C8Y20dp1dtEisfiwYzqRdj+OhOts6PqQ at mail.gmail.com>>
>     Content-Type: text/plain; charset="utf-8"
>
>     Hello All,
>
>     I am trying to run my ncl script from the following shell script:
>
>     #!/bash/bin
>     for i in {1..2}
>     do
>     echo $i
>     ncl myfile.ncl
>     done
>
>     Runs perfectly fine =>
>     [bidyut at localhost <mailto:bidyut at localhost>]$ shtest.sh
>     <http://test.sh/>
>     1
>     Copyright (C) 1995-2017 - All Rights Reserved
>     University Corporation for Atmospheric Research
>     NCAR Command Language Version 6.4.0
>     The use of this software is governed by a License Agreement.
>     Seehttp://www.ncl.ucar.edu/ <http://www.ncl.ucar.edu/>for more
>     details.
>     (0) Hello
>     2
>     Copyright (C) 1995-2017 - All Rights Reserved
>     University Corporation for Atmospheric Research
>     NCAR Command Language Version 6.4.0
>     The use of this software is governed by a License Agreement.
>     Seehttp://www.ncl.ucar.edu/ <http://www.ncl.ucar.edu/>for more
>     details.
>     (0) Hello
>
>     But if I try to run:
>
>     #!/bash/bin
>     cat myfile| while read mname
>     do
>     echo "$mname"
>     echo "Running the NCL script"
>     ncl myfile.ncl
>     done
>
>     I get an error=>
>     [bidyut at localhost <mailto:bidyut at localhost>]$ shtest1.sh
>     <http://test1.sh/>
>     name1
>     Running the NCL script
>     Copyright (C) 1995-2017 - All Rights Reserved
>     University Corporation for Atmospheric Research
>     NCAR Command Language Version 6.4.0
>     The use of this software is governed by a License Agreement.
>     Seehttp://www.ncl.ucar.edu/ <http://www.ncl.ucar.edu/>for more
>     details.
>     (0) Hello
>     fatal:syntax error: line -1 before or near \n
>     name2
>     -----^
>
>     fatal:error in statement
>
>
>     What am I doing wrong?
>
>     FYI, Here are the associated file contents:
>     [bidyut at localhost <mailto:bidyut at localhost>]$ cat myfile
>     name1
>     name2
>
>     [bidyut at localhost <mailto:bidyut at localhost>]$ cat myfile.ncl
>     load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_code.ncl"
>     load "$NCARG_ROOT/lib/ncarg/nclscripts/csm/gsn_csm.ncl"
>
>     begin
>
>     print("Hello")
>
>     end
>
>     Thanks,
>     Bidyut
>
>     Dr. Brian Thomas
>     Professor
>     Physics & Astronomy
>     Washburn University
>
>     Sent from my mobile device
>
>
>
> -- 
> /*Bidyut Bikash Goswami*
> Research Professor
> Irreversible Climate Change Research Center (IRCC)/
> /​Yonsei University/
> /Seoul, South Korea​/
>
> _______________________________________________
> ncl-talk mailing list
> ncl-talk at mailman.ucar.edu
> List instructions, subscriber options, unsubscribe:
> https://mailman.ucar.edu/mailman/listinfo/ncl-talk
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <https://mailman.ucar.edu/pipermail/ncl-talk/attachments/20210423/7d69d28f/attachment.html>


More information about the ncl-talk mailing list