Re: about passing parameter

From: wen <wenguanhuan_at_nyahnyahspammersnyahnyah>
Date: Fri Mar 14 2014 - 19:53:50 MDT

Hi Dennis and David,
     Thanks for your suggestions. I learn a lot. The way suggested by David work well.

--
Best wishes
Guanhuan Wen
At 2014-03-15 00:58:04,"Dennis Shea" <shea@ucar.edu> wrote:
>The following NCL script could be used to invoke another NCL script.
>It shows two slight variations of a sample system command.
>
>;===== Simulate the following in NCL============
>;; #!/bin/bash
>;; season=(JJA DJF MAM)
>;; for ((k=0; k<${#season[@]}; k=k+1))
>;; do
>;; ncl 'se="${season[${k}]}"' test.ncl
>;; done
>
>    dq = str_get_dq()   ; double quote (") as a string
>
>    season = (/"JJA", "DJF", "MAM" /)
>    do k=0,dimsizes(season)-1
>       CMD = "ncl 'se="+dq+season(k)+dq+"' test.ncl"
>      ;CMD = "ncl 'se="+dq+season(k)+dq+"' test.ncl >&! out.test."+k
>       print(""+CMD)
>       system(CMD)
>    end do
>;=========================================
>The explicit creation of the 'CMD' variable was done so that you
>could print the created string. It could be done directly via
>
>    do k=0,dimsizes(season)-1
>       system("ncl 'se="+dq+season(k)+dq+"' test.ncl")
>    end do
>++++++++++++++++++++++++++++++++++++++++++++
>A trivial test.ncl script would be:
>
>begin
>   print("test.ncl : season="+se)
>end
>
>
>++++++++++++++++++++++++++++++++++++++++++++
>Maybe somebody from the Python world would illustrate how
>one would invoke the NCL script via Python.
>
>
>
>
>On 3/14/14, 9:16 AM, David B. Reusch wrote:
>> I think you just need additional single quotes (') on the call to ncl.
>> The first goes before the "$" and the second goes after the "}".  At
>> least this is what I would do in csh and I'm assuming it's the same in
>> bash.  The way it is now, the shell is not substituting the season
>> variable.
>>
>> Hope this helps,
>> Dave
>>
>> wen said the following on 3/14/2014 7:53 AM:
>>> Hi Dennis,
>>>   Thanks for you help. I write linux-shell-script to pass parameter of
>>> type of string. It do not work. Do you know why? Following is the
>>> linux-shell-script.
>>>
>>> #!/bin/bash
>>> season=(JJA DJF MAM)
>>> for ((k=0; k<${#season[@]}; k=k+1))
>>> do
>>> ncl 'se="${season[${k}]}"' test.ncl
>>> done
>>>
>>>
>>>
>>>
>>> --
>>> ??
>>> ???
>>>
>>> At 2014-03-14 21:23:55,"Dennis Shea" <shea@ucar.edu> wrote:
>>> >Please read:
>>> >    http://www.ncl.ucar.edu/Document/Manuals/Ref_Manual/NclCLO.shtml
>>> >
>>> >There are many examples.
>>> >
>>> >
>>> >%>ncl 'fil="sample.nc"' ys=1979 ye=2005 ex=0 lgen=1 minpre=0.1 lgex=2
>>> >maxpre=3 day_int_amo_annual.ncl
>>> >
>>> >On 3/14/14, 6:54 AM, wen wrote:
>>> >> Hi all, I run a ncl script by passing parameter as following.  I
>>> found it work well when the type of parameter is numerical type.
>>> However, it did not work when the type of parameter is string. Could
>>> ncl pass parameter of type of string?  If anyone know that , please
>>> tell me. Thank you!
>>> >> ncl ys=1979 ye=2005 ex=0 lgen=1 minpre=0.1 lgex=2 maxpre=3
>>> day_int_amo_annual.ncl
>>> >>
>>> >>
>>> >>
>>> >>
>>> >>
>>> >> --
>>> >>
>>> >> Best wishes
>>> >> Guanhuan Wen
>>> >>
>>> >>
>>> >>
>>> >> _______________________________________________
>>> >> ncl-talk mailing list
>>> >> List instructions, subscriber options, unsubscribe:
>>> >> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>> >>
>>>
>>>
>>>
>>>
>>> _______________________________________________
>>> ncl-talk mailing list
>>> List instructions, subscriber options, unsubscribe:
>>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>
>>
>>
>> _______________________________________________
>> ncl-talk mailing list
>> List instructions, subscriber options, unsubscribe:
>> http://mailman.ucar.edu/mailman/listinfo/ncl-talk
>>

_______________________________________________
ncl-talk mailing list
List instructions, subscriber options, unsubscribe:
http://mailman.ucar.edu/mailman/listinfo/ncl-talk
Received on Fri Mar 14 19:54:13 2014

This archive was generated by hypermail 2.1.8 : Fri Mar 21 2014 - 15:49:21 MDT