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) myhost
Here, variable "host" contains the string "myhost".Example 2
Set the following environment variables in the shell (C-Shell assumed):
setenv YEAR1 1901
setenv YEAR2 2000
NCL may retrieve these variables as:
yr1_string = getenv("YEAR1") ; return string "1901"
yr2_string = getenv("YEAR2") ; return string "2000"
Example 3It 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.5
Retrieve this value from within NCL using the conversion function "stringtofloat":
cint = stringtofloat(getenv("CINT")) ; cint = 2.5 (type float)
Example 4NCL 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
exit
A 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