Syntax: !shell [command...]Giving the command ``!shell'' without arguments is equivalent to giving a bare exclamation point with no following text. If a command is given, that command will be run in the pop-up window. This is equivalent to !command, provided that this is not also a built-in command. The use of !shell removes the ambiguity.
The shell which is used to execute operating system commands can be selected by the user, through the Shell variable and the !set command. If this is not set, the SHELL environment variable is used if set, otherwise the default ``/bin/sh'' shell is used, except under Windows where the standard ``DOS box'' is the default.
Under Windows, it is possible to open a Cygwin bash shell window instead of the brain-dead ``DOS box'', if Cygwin is installed. If the Shell variable or SHELL environment variable (in that precedence) contains the Windows path to the bash.exe file, a bash window will be used. If neither is given, and bash.exe resides in /bin or /cygwin/bin on the current disk drive, or the CYGWIN_BIN environment variable is set to the Windows path to the directory containing bash.exe, a bash shell will be used. Only if bash.exe is not found, or one of the variables specifically invokes ``cmd'', will a DOS box be used.