NAME
g.ask - Prompts the user for the names of GRASS data base files.
(GRASS File Management Program)
SYNOPSIS
g.ask help
g.ask type=name
[prompt="string"]
element=name
[desc="string"]
unixfile=name
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="string"
- 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="string"
- 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
AUTHOR
Michael Shapiro,
U.S.Army Construction Engineering
Research Laboratory