## GRASS variables and environment variables

There are two types of variables:

- environment variables,
- GRASS variables.

Any setting which needs to be modifiable by a GRASS program (e.g. MONITOR) has to be a GRASS variable.

## Setting environment variables

Setting environment variables depends on the shell being used:
Bash: `export VARIABLE=value`
or
Csh: `setenv VARIABLE value`

## Setting environment variables permanently

- To get personal BASH shell definitions (aliases, color listing option, ...) into GRASS, store them in:
  `$HOME/.grass.bashrc`
- To get personal CSH shell definitions (aliases, color listing option, ...) into GRASS, store them in:
  `$HOME/.grass.cshrc`

## Setting GRASS variables

You have to use "g.gisenv" (within GRASS which then permanently predefines GRASS variables in the `.grassrc6` file):

Use: `g.gisenv set=VARIABLE=VALUE`

It looks unusual with two equals signs, but g.gisenv does dual duty for getting and setting GRASS variables.

If the user just specifies a variable name, it defaults to "get" mode. Example:

`GRASS ~> g.gisenv GRASS_GUI
text`

## List of selected (GRASS related) environment variables

GISBASE
directory where GRASS lives

GISRC
name of .grassrc6 file

GRASS_ADDON_PATH
[grass5] startup script
allows to specify additional paths to local GRASS modules extra to standard distribution

GRASS_ANOTHER_BUTTON
[various modules]
If the environment variable GRASS_ANOTHER_BUTTON exists, the mouse button setting will be changed for two-button mice.

GRASS_BACKGROUNDCOLOR
[PNGdriver]
defines the background color of the image created by the PNG driver

GRASS_ERROR_MAIL
set to any value to send user mail on an error or warning that happens while stderr is being redirected.

GRASS_GNUPLOT
[m.svfit, s.probplt, s.sv]
program to use for plotting "gnuplot" data

GRASS_HEIGHT
[d.mon]
defines the height of GRASS monitor, see also GRASS_WIDTH

GRASS_HTML_BROWSER
[init.sh, d.m]
defines name of HTML browser

GRASS_INT_ZLIB
[libgis]
If the environment variable GRASS_INT_ZLIB exists, new compressed rasters will be compressed using zlib instead of RLE compression. Such rasters will have a "compressed" value of 2 in the cellhd file.
Obviously, decompression is controlled by the raster's "compressed" value, not the environment variable.

GRASS_MESSAGE_FORMAT
[various modules]
Maybe set to either "standard" or "gui" (normally GRASS takes care)

GRASS_PAGER
[various modules]
Maybe set to either "less" or "more"

GRASS_PERL
set perl with path

GRASS_PNGFILE
[PNGdriver]
name of PNG output file

GRASS_TCLSH
[nviz]
set tclsh shell name to override 'tclsh'

GRASS_TRANSPARENT
[PNGdriver]
if "TRUE", the image created by the PNG driver will have a transparent background

GRASS_TRUECOLOR
[PNGdriver]
if "TRUE", the PNG driver generates a true-color image

GRASS_UI_TERM
set to any value to use the terminal based parser

GRASS_VERSION
reports the current version number (used by R-stats interface etc);
should not be changed by user

GRASS_WIDTH
[d.mon]
defines the width of GRASS monitor, see also GRASS_HEIGHT

GRASS_WISH
[d.m, nviz]
set wish shell name to override 'wish'

## List of selected GRASS variables

[ Use `g.gisenv` to set/unset/change them ]

DEBUG
[entire GRASS]
sets level of debug message output (0: no debug messages)
`g.gisenv set=DEBUG=0`

DM_FORM_MODE
[d.m]
sets default form mode (txt or gui)
`g.gisenv set=DM_FORM_MODE=txt`

GISDBASE
initial database

GIS_LOCK
lock ID to prevent parallel GRASS use,
process id of the start-up shell script

GRASS_DB_ENCODING
[d.what.vect/forms library]
encoding of query form (utf-8, ascii, iso8859-1, koi8-r)

GRASS_GUI
either "text" or "tcltk" to define non-/graphical startup

LOCATION
full path to location directory

LOCATION_NAME
initial location name

MAPSET
initial mapset

OVERWRITE
[all modules]
toggles map overwrite.
With 0 maps are protected (default),
With 1 maps with identical names will be overwritten.
You can force a protected overwrite by adding "--o" to the command.
e.g.:
`g.gisenv set="OVERWRITE=0"`

## GRASS-related Files

$HOME/.grassrc6
stores the GRASS variables (but not environment variables)

$HOME/GIS_ERROR_LOG
If this file exists then all GRASS error and warning messages are logged here. Applies to current user. To generate the file, use:
`touch $HOME/GIS_ERROR_LOG`

$GISBASE/GIS_ERROR_LOG
If this file exists then all GRASS error and warning messages are logged here. Applies to all users. (proper write permissions must be in place)

Note: Error and warning messages encountered while using the GUI menus are not logged.

### SEE ALSO

g.gisenv

Last changed: $Date: 2005/09/23 04:52:24 $

Help Index