[GRASS-user] v.db.connect error (Grass 6.4.0RC4 on OSX 10.5.8)
    Glynn Clements 
    glynn at gclements.plus.com
       
    Mon Dec 14 20:09:55 EST 2009
    
    
  
Richard Chirgwin wrote:
> There is a slip in the command-line parsing of v.db.connect.
>  
> The GUI works ok, but the same command, pasted to the command line, 
> produces this:
> 
>  > v.db.connect -o map=CD_act driver=dbf 
> database=$GISDBE/$LOCATION_NAME/$MAPSET/dbf table=cd_act_2 key=cat layer=1
>  >
>  > ERROR: Table <cd_act_2> does not exist in database <///dbf>
> 
> Note the extra slash characters added by v.db.connect here...
This isn't a problem with db.connect, but with the way that you ran it
from the shell.
You need to quote the database= option (with single quotes), otherwise
the shell will interpret $GISDBASE, $LOCATION_NAME, and $MAPSET as
variable substitutions. As these variables aren't defined, they are
replaced by the empty string, giving the result you see.
IOW:
v.db.connect -o map=CD_act driver=dbf 'database=$GISDBASE/$LOCATION_NAME/$MAPSET/dbf' table=cd_act_2 key=cat layer=1
If you run v.db.connect from the GUI, the shell doesn't get involved,
so this isn't an issue.
bash (which I assume that you're using) has quite thorough
documentation (around 80 pages) available via "man bash" or at:
	http://www.gnu.org/software/bash/manual/
While much of that information is only necessary for scripting, it is
important to learn which constructs the shell interprets, and how to
prevent it from doing so.
-- 
Glynn Clements <glynn at gclements.plus.com>
    
    
More information about the grass-user
mailing list