Shell variables can be set from the shell with the set command. Equivalently, most of the variables that have internal meaning to WRspice can be set from variaous panels available in the Tools menu of the Tool Control window. These are the Plot Options, Plot Colors, Shell Options, Simulation Options, Command Options and Debug Options panels. The Variables panel from the Tools menu will list the variables currently set, as will giving the set command without arguments.
In addition, shell variables are set which correspond to definitions supplied on the .options line of the current circuit, and there are additional shell variables which are set automatically in accord with the current plot. In the variable listings, a `+ ' symbol is prepended to variables defined from a .options line in the current circuit, and a `* ' symbol is prepended to those variables defined for the current plot. These variable definitions will change as the current circuit and current plot change. Some variables are read-only and may not be changed by the user, though this is not indicated in the listing.
Before a simulation starts, the options from the .options line of the current circuit are merged with any variables of the same name that have been set using the shell. The default result of the merge is that options that are booleans will be set if set in either case, and those that take values will assume the value set through the shell if conflicting definitions are given. The merging behavior can be altered by the user, as described in the section listing circuit options (18.104.22.168). In general, variables set in the .options line are available for expansion in $varname references, but do not otherwise affect the shell.
While any variable may be set, there are many shell variables that have special meaning to WRspice, which will be described. Note the difference between a variable and a vector -- a variable is manipulated with the commands set and unset, and may be substituted in a command line with the $varname notation. A vector is a numerical object that can be manipulated algebraically, printed and plotted, etc.