g.ask(1)

NAME
g.ask - Prompts the user for the names of GRASS data base files.

KEYWORDS
general

SYNOPSIS
g.ask
g.ask help
g.ask type=string [prompt="string"] element=string [desc="string"] unixfile=string

  Parameters:

type=string
    The type of query Options: old,new,any,mapset

prompt=
    The prompt to be displayed to the user

element=string
    The database element to be queried

desc=
    A short description of the database element

unixfile=string
    The name of a unix file to store the user's response

DESCRIPTION
g.ask is designed for shell scripts that need to prompt the user for the name of a data base file in the user's current GRASS location. After g.ask is invoked with needed parameters, it will query the user for a file name of the specified type and element. After the user responds to this query, the program will write four lines to the UNIX output file specified by unixfile.

OPTIONS

  Parameters:

type=name
    The type of query. Options for name are old, new, any, and mapset; their functions are given below. "New", "any", and "mapset" only look in the user's current mapset.

old For existing data files anywhere in the user's mapset search path.

new Used to create a new file in the current mapset, which must not already exist there (if a file with this name exists there, it will not be overwritten).

any Creates a file in the current mapset, which may or may not already exist there. If a file with this name exists in the current mapset, it will be overwritten; if not, a new file with this name will be created.

mapset
    For files that must exist in the current mapset The shell write wants the name of a file which exists in the user's current mapset. This type would used instead of "old" if the file is to be modified.

prompt=
    The prompt to be displayed to the user. If more than one word, the prompt should be enclosed within double quotes ("").

element=name
    The name of the GRASS data base element (i.e., directory under a GRASS mapset) whose files are to be queried.

desc=
    A short description of the data base element which is meaningful to the user. If description contains more than one word, it should be enclosed within double quotes ("").

unixfile=name
    The name of a UNIX file to store the user's response. See next section for what is written to this file and how it can be used by shell scripts.

OUTPUT
Upon receiving the user's response to its request for a file name, g.ask writes four lines to the specified unixfile; this output file is placed in the user's current working directory, unless otherwise specified, and contains the following lines:
name='some_name'
mapset='some_mapset'
fullname='some_fullname'
file='some_fullpath'

The output is /bin/sh commands to set the variable name to the file name specified by the user (of the element and type requested by g.ask), mapset to the GRASS mapset in which this file resides (or will be created), fullname is the name with the mapset embedded in it, and file to the full UNIX path name identifying this file. These variables may be set in the /bin/sh as follows: . unixfile

The . is a shell command which means read the unixfile and execute the commands found there. It is NOT part of the unixfile name and MUST be followed by a space.

NOTES
The user may choose to simply hit the return key and not enter a file name. If this happens the variables will be set as follows:
name=
mapset=
fullname=
file=

The following is a way to test for this case:
if [ ! "$file" ]
then
    exit
fi

SEE ALSO
d.ask, g.filename, g.findfile, g.gisenv, g.parser

AUTHOR
Michael Shapiro, U.S.Army Construction Engineering Research Laboratory

Last changed: $Date: 2005/12/07 13:31:15 $

Full index