---
name: "fdshell"
section: "7"
platform: "linux"
package: "framerd"
version: "2.4.1-1.1"
release: "Debian 3.1 (Sarge)"
platforms: ["linux"]
url: "https://new.carta.tech/fdshell"
---

# fdshell(7)

using FramerD from the shell

## NAME

fdshell - using FramerD from the shell

## SYNOPSIS

**fdshell**

## DESCRIPTION

fdshell provides a set of scripts and conventions for accessing FramerD databases from the Unix (or other) shells.  The scripts collectively use a set of configuration variables and a module, written in FDScript, for using those variables and parsing commands args.

The variables are as follows:

- **%POOL**

  The default pool used for creating new frames

- **%POOLS**

  The pools used by the  [**fdshell**(7)](/fdshell/7.md) scripts; these determine which frames are accessible to access and searching

- **%INDICES**

  The background indices used to search for frames with particular slotid/value combinations.

- **%INDEX**

  The foreground index used by default to store newly created frame/slotid/value combinations.  Note that this is only used when indices directly associated with the frame's pool are not available or not modifiable.

  In addition, the variable **FDENV** identifies a configuration file which will be loaded before any of these configuration variables are used, allowing a particular fdshell setup to be stored in a configuration file and then "switched on" by simply specifing the **FDENV variable.**

  In addition to these standard configuration variables, the fdshell scripts all share a set of conventions for parsing command line arguments.  The challenge is that FDScript and FramerD are based on richly typed Lisp objects (including vectors, lists, choices, OIDs, numbers, etc) while the Unix shell is pretty much all about strings, especially on the command line.  To deal with this, fdshell introduces a parser for strings which are are called on nearly all command line arguments.   The rules of this parser are simple:

  Strings starting with  **@,#,(,** or **{** are directly parsed by the lisp parser.  Strings starting with a colon (:) have the lisp parser called on the rest of the string (forcing a lisp parse); strings starting with a single backslash ( simple return the rest of the string (forcing a string interprtation).

  Strings starting with "@?" are converted into OIDs by various search methods in the following order:

- **@?string**

  resolves to frames indexed under the  **OBJ-NAME** slot of *string* or if this fails, **@?symbol** resolves to frames indexed under the  **OBJ-NAME** slot of the symbol *symbol* produced by calling **read-from-string** on the rest of the argument.  If even this fails, a more complicated search is done,

- **@?symbol:value**

  resolves to all frames indexed to have *value* on their slot named *symbol* according to the current background.  The parameter *value* is interpreted recursively according to these rules.  If this fails to resolve to any frames, a final method is tried

- **@?obj-name:value**

  the field *obj-name* is resolved to any frames with an obj-name slot of *obj-name* as either a string or a symbol.  These frames are then used as slotids in a search for frames possessing  *value* again interpreted recursively.

## OPTIONS

**fdshell** scripts is implemented as FDScript scripts, so their arguments may have CONFIG bindings, as well as accepting the flags **-m -c -f** to load modules, configs, and scheme files, as described in [**fdscript**(1)](/fdscript/1.md)

## CONFIG VARIABLES

- **%POOL**

  The default pool used for creating new frames

- **%POOLS**

  The pools used by the  [**fdshell**(7)](/fdshell/7.md) scripts; these determine which frames are accessible to access and searching

- **%INDICES**

  The background indices used to search for frames with particular slotid/value combinations.

- **%INDEX**

  The foreground index used by default to store newly created frame/slotid/value combinations.  Note that this is only used when indices directly associated with the frame's pool are not available or not modifiable.

## BUGS

No known bugs

## Revision Info

**$Id: fdshell.7,v 1.2 2002/04/02 22:21:07 haase Exp $**

## AUTHOR

Ken Haase \< kh@beingmeta.com \>

## SEE ALSO

**framerd**(7) [**fdd**(1)](/fdd/1.md) [**fd\_add**(1)](/fd_add/1.md) [**fd\_drop**(1)](/fd_drop/1.md) [**fd\_get**(1)](/fd_get/1.md) [**fd\_find**(1)](/fd_find/1.md) [**fd\_test**(1)](/fd_test/1.md) [**fd\_make**(1)](/fd_make/1.md)
