
getenv
Returns the string value of a shell environment variable.
Prototype
function getenv ( env_name [1] : string ) return_val [1] : string
Return value
Returns a string containing the value of the shell environment variable requested, if that environment variable is set, or a missing value if it is not set.
Description
This function returns the value of the shell environment variable requested, if set, or a missing value if the environment variable is not set.
See Also
Examples
Example 1
Get the value of the shell environment variable HOST:
host = getenv("HOST") print (host) Variable: host Type: string Total Size: 8 bytes 1 values Number of Dimensions: 1 Dimensions and sizes: [1] Coordinates: (0) myhostHere, variable "host" contains the string "myhost".
Example 2
Set the following environment variables in the shell (C-Shell assumed):
setenv YEAR1 1901 setenv YEAR2 2000NCL may retrieve these variables as:
yr1_string = getenv("YEAR1") ; return string "1901" yr2_string = getenv("YEAR2") ; return string "2000"Example 3
It is often useful to return string values as integral or floating point values. To do so, use the conversion functions "stringtointeger" and "stringtofloat":
Using environment variables set in Example 2, above:
yr1 = stringtointeger(getenv("YEAR1")) ; yr1 = 1901 ; (integer) yr2 = stringtointeger(getenv("YEAR2")) ; yr2 = 2000 ; (integer)Floating point values are similarly retrieved. From within a shell (C-Shell assumed):
setenv CINT 2.5Retrieve this value from within NCL using the conversion function "stringtofloat":
cint = stringtofloat(getenv("CINT")) ; cint = 2.5 (type float)Example 4
NCL may be used within a shell script. The shell script can set one or more environment variables and then invoke an NCL script which uses the getenv function to access the environment variable(s) set.
Consider the following C-shell script:
#!/bin/csh @ YR = 79 @ YRSTOP = 99 # while ( $YR <= $YRSTOP ) echo $YR setenv YEAR $YR ncl myscript.ncl & ; Processes are put in background [&] @ YR = ($YR + 1) end exitA functionally similar NCL script may invoke the system command. This uses shell syntax (default shell: /bin/sh) that sets an environment variable as export name = value. This example uses NCL's sleep procedure to wait 5 seconds before proceeding to the next iteration. The use of sleep is not necessary, it is included for illustrative purposes only.
begin do year =79, 81 system("export YEAR = "+ year + "; echo $YEAR ; ncl myscript.ncl &") sleep(5) end do end