fortunes data file for Korn Shell 93 Version: 1.2 Provided by: Mt Xia Inc. Dana French, President 117 B 5th Avenue North Franklin, TN 37064 615.556.0456 dfrench@mtxia.com Specializing in Business Continuity, Disaster Recovery, AIX and HACMP % Korn Shell 93 - Command Line Arguments - Ends option processing % Korn Shell 93 - Command Line Arguments -c cmd execute cmd ( default reads command from file named in first entry of args via path search) % Korn Shell 93 - Command Line Arguments -D print all double-quoted strings that are preceded by a $. Such strings are subject to translation in the current locale % Korn Shell 93 - Command Line Arguments -i set interactive mode (default) % Korn Shell 93 - Command Line Arguments -r set restricted mode % Korn Shell 93 - Command Line Arguments -R filename Generate a cross reference database for finding variable and command definitions and references; may not be compiled in % Korn Shell 93 - Command Line Arguments -s read commands from stdin (default) % Korn Shell 93 - Startup Files Login shells run commands and in /etc/profile and then ${HOME}/.profile if they exist. Next, interactive (all) shells do variable, command and arithmetic substitution on the value of ${ENV}, and if the result names an existing file, that file is executed. The errexit option is ignored for the startup files. % Korn Shell 93 - Control Commands ! pipeline Execute pipeline. If exit status is non-zero, exit zero. If exit status is zero, exit 1 % Korn Shell 93 - Control Commands Case statement - Syntax example case word in pattern1) cmdList1;; pattern1|pattern2...) cmdList2;; *) cmdList3;; esac "word" is normally a variable. The specified patterns represent Korn shell patterns (not regular expressions). Filename generation, variable substitution, command substitution, and quote removal are performed on the patterns. The specified lists are one or more unix commands. The list of unix commands to be executed when the pattern matches the word is terminated by a double semicolon (;;). % Korn Shell 93 - Control Commands for - Syntax example for name in wordlist do cmdList done A "for" loop sequentially assigns each word in the "wordlist" to the variable specified as "name" and executes the "cmdList" each time through the loop. The default "wordlist" is all positional parameters. Filename generation, variable substitution, command substitution, and quote removal is performed on the "wordlist". % Korn Shell 93 - File Name Generation ? * [] ? represents 1 single character * represents 0 or more characters [] represents any SINGLE character from the set of characters contained between the square brackets. Can also be a range of characters such as a-z. All upper and lower case letters could be represented as [A-Za-z]. % Korn Shell 93 - Definitions A metacharacter is one of the following characters: ; & ( ) | < > new-line space tab % Korn Shell 93 - Definitions A blank is a tab or a space. % Korn Shell 93 - Definitions A command is a sequence of characters in the syntax of the shell language. The shell reads each command and carries out the desired action either directly or by invoking separate utilities. A built-in command is a command that is carried out by the shell itself without creating a separate process. % Korn Shell 93 - Definitions A simple-command is a list of variable assignments or a sequence of blank separated words which may be preceded by a list of variable assignments. The first word specifies the name of the command to be executed. % Korn Shell 93 - Definitions A pipeline is a sequence of one or more commands separated by |. The standard output of each command but the last is connected by a pipe(2) to the standard input of the next command. Each command, except possibly the last, is run as a separate process; the shell waits for the last command to terminate. The exit status of a pipeline is the exit status of the last command. % Korn Shell 93 - Definitions A "list" is a sequence of one or more pipelines separated by ;, &, |&, &&, or | |, and optionally terminated by ;, &, or |&. Of these five symbols, ;, &, and |& have equal precedence, which is lower than that of && and | |. The symbols && and || also have equal precedence. A semicolon (;) causes sequential execution of the preceding pipeline; an ampersand (&) causes asynchronous execution of the preceding pipeline (i.e., the shell does not wait for that pipeline to finish). % Korn Shell 93 - Definitions The symbol |& causes asynchronous execution of the preceding pipeline with a two-way pipe established to the parent shell; the standard input and output of the spawned pipeline can be written to and read from by the parent shell by applying the redirection operators <& and >& with arg p to commands and by using -p option of the built-in commands read and print described later. % Korn Shell 93 - Definitions The symbol && ( || ) causes the command list following it to be executed only if the preceding pipeline returns a zero (non-zero) value. One or more new-lines may appear in a list instead of a semicolon, to delimit a command. % Korn Shell 93 - Definitions A command is either a simple-command or one of the following. Unless otherwise stated, the value returned by a command is that of the last simple-command executed in the command. % Korn Shell 93 - Definitions for vname [ in word ... ] do list done Each time a for command is executed, vname is set to the next word taken from the in word list. If "in word ..." is omitted, then the for command executes the do list once for each positional parameter that is set starting from 1. Execution ends when there are no more words in the list. % Korn Shell 93 - Definitions for (( [expr1]; [expr2]; [expr3] )) do list done The arithmetic expression expr1 is evaluated first The arithmetic expression expr2 is repeatedly evaluated until it evaluates to zero and when non-zero, list is executed and the arithmetic expression expr3 evaluated. If any expression is omitted, then it behaves as if it evaluated to 1. Example: for (( i=0; i < 255; ++i )) % Korn Shell 93 - Definitions select vname [ in word ... ] do list done A select command prints on standard error (file descriptor 2) the set of words, each preceded by a number. If in word ... is omitted, then the positional parameters starting from 1 are used instead. The PS3 prompt is printed and a line is read from the standard input. If this line consists of the number of one of the listed words, then the value of the variable vname is set to the word corresponding to this number. If this line is empty, the selection list is printed again. Otherwise the value of the variable vname is set to null. The contents of the line read from standard input is saved in the variable REPLY. The list is executed for each selection until a break or end-of-file is encountered. If the REPLY variable is set to null by the execution of list, then the selection list is printed before displaying the PS3 prompt for the next selection. % Korn Shell 93 - Definitions case word in pattern1) cmdList1;; pattern1|pattern2...) cmdList2;; *) cmdList3;; esac A "case" command executes the list associated with the first pattern that matches "word". The form of the patterns is the same as that used for file-name generation. The ";;" operator causes execution of case to terminate. If ;& is used in place of ;; the next subsequent list, if any, is executed. % Korn Shell 93 - Definitions if list then list [ elif list then list ] [ else list ] fi The list following "if" is executed and, if it returns a zero exit status, the list following the first "then" is executed. Otherwise, the list following "elif" is executed and, if its value is zero, the list following the next "then" is executed. Failing each successive "elif" list , the "else" list is executed. If the "if" list has non-zero exit status and there is no "else" list, the "if" command returns a zero exit status. % Korn Shell 93 - Definitions while cmdList do cmdList done A "while" command repeatedly executes a list of commands, if the exit status of the last command in the list is zero, executes the commands between the "do" and "done" statements; otherwise the loop terminates. If no commands between the "do" and "done" statements are executed, then the while command returns a zero exit status. % Korn Shell 93 - Definitions until cmdList do cmdList done An "until" command repeatedly executes a list of commands, if the exit status of the last command in the list is zero, the loop terminates; otherwise it executes the commands between the "do" and "done" statements. If no commands between the "do" and "done" statements are executed, the "until" command returns a zero exit status. % Korn Shell 93 - Definitions ((expression )) The expression is evaluated using the rules for arithmetic evaluation. If the value of the arithmetic expression is non-zero, the exit status is 0, otherwise the exit status is 1. % Korn Shell 93 - Definitions (list ) Execute list in a separate environment. Note, that if two adjacent open parentheses are needed for nesting, a space must be inserted to avoid evaluation as an arithmetic command. % Korn Shell 93 - Definitions { list ;} list is simply executed. Note that unlike the metacharacters ( and ), { and } are reserved words and must occur at the beginning of a line or after a ; in order to be recognized. % Korn Shell 93 - Definitions [[ expression ]] Evaluates expression and returns a zero exit status when expression is true. % Korn Shell 93 - Definitions function varname { list ;} varname () { list ;} Define a function which is referenced by varname. A function whose varname contains a . is called a discipline function and the portion of the varname preceding the last . must refer to an existing variable. The body of the function is the list of commands between { and }. A function defined with the function varname syntax can also be used as an argument to the . special built-in command to get the equivalent behavior as if the varname () syntax were used to define it. % Korn Shell 93 - Definitions time [ pipeline ] If pipeline is omitted the user and system time for the current shell and completed child processes is printed on standard error. Otherwise, pipeline is executed and the elapsed time as well as the user and system time are printed on standard error. % Korn Shell 93 - Definitions The following reserved words are recognized as reserved only when they are the first word of a command and are not quoted: if then else elif fi case esac for while until do done { } function select time [[ ]] ! % Korn Shell 93 - Variable Assignments One or more variable assignments can start a simple command or can be arguments to the typeset, export, or readonly special built-in commands. The syntax for an assignment is of the form: varname =word varname [word ]=word No space is permitted between varname and the = or between = and word . % Korn Shell 93 - Variable Assignments varname =(assign_list ) No space is permitted between varname and the =. An assign_list can be one of the following: word ... Indexed array assignment [word ]=word ... Associative array assignment assignment ... Nested variable assignment typeset [ options ] assignment ... Nested variable assignment. Multiple assignments can be specified by separating each of them with a ;. % Korn Shell 93 - Comments A word beginning with # causes that word and all the following characters up to a new-line to be ignored. % Korn Shell 93 - Aliasing Defining an alias: alias word='cmd' % Korn Shell 93 - Aliasing Aliasing is performed when scripts are read, not while they are executed. Therefore, for an alias to take effect, the alias definition command has to be executed before the command which references the alias is read. % Korn Shell 93 - Aliasing The following aliases are compiled into the shell but can be unset or redefined: autoload='typeset -fu' command='command ' fc=hist float='typeset -E' functions='typeset -f' hash='alias -t - -' history='hist -l' integer='typeset -i' nameref='typeset -n' nohup='nohup ' r='hist -s' redirect='command exec' stop='kill -s STOP' suspend='kill -s STOP $$' times='{ { time;} 2>&1;}' type='whence -v' % Korn Shell 93 - Tilde Substitution After alias substitution is performed, each word is checked to see if it begins with an unquoted ~. For tilde substitution, word also refers to the word portion of parameter expansion. If it does, then the word up to a / is checked to see if it matches a user name in the password database (often the /etc/passwd file). If a match is found, the ~ and the matched login name are replaced by the login directory of the matched user. If no match is found, the original text is left unchanged. A ~ by itself, or in front of a /, is replaced by $HOME. A ~ followed by a + or - is replaced by the value of $PWD and $OLDPWD respectively. % Korn Shell 93 - Command Substitution The standard output from a command enclosed in parentheses preceded by a dollar sign ( $( ) ) or a pair of grave accents ( ` ` ) may be used as part or all of a word; trailing new-lines are removed. In the second (obsolete) form, the string between the quotes is processed for special quoting characters before the command is executed. The command substitution $( cat file ) can be replaced by the equivalent but faster $( (list ) will run process list asynchronously connected to some file in /dev/fd. The name of this file will become the argument to the command. If the form with > is selected then writing on this file will provide input for list. If < is used, then the file passed as an argument will contain the output of the list process. For example, paste <(cut -f1 file1) <(cut -f3 file2) | tee >(process1) >(process2) cuts fields 1 and 3 from the files file1 and file2 respectively, pastes the results together, and sends it to the processes process1 and process2, as well as putting it onto the standard output. Note that the file, which is passed as an argument to the command, is a UNIX pipe(2) so programs that expect to lseek(2) on the file will not work. % Korn Shell 93 - Parameter Expansion. A parameter is a variable, one or more digits, or any of the characters *, @, #, ?, -, $, and !\ . A variable is denoted by a vname. To create a variable whose vname contains a ., a variable whose vname consists of everything before the last . must already exist. A variable has a value and zero or more attributes. Variables can be assigned values and attributes by using the typeset special built-in command. The attributes supported by the shell are described later with the typeset special built-in command. Exported variables pass values and attributes to the environment. % Korn Shell 93 - Parameter Expansion. The shell supports both indexed and associative arrays. An element of an array variable is referenced by a subscript. A subscript for an indexed array is denoted by an arithmeticexpression between a [ and a ]. To assign values to an indexed array, use set -A vname value ... . The value of all subscripts must be in the range of 0 through 4095. Indexed arrays need not be declared. Any reference to a variable with a valid subscript is legal and an array will be created if necessary. % Korn Shell 93 - Parameter Expansion. An associative array is created with the -A option to typeset. A subscript for an associative array is denoted by a string enclosed between [ and ]. % Korn Shell 93 - Parameter Expansion. Referencing any array without a subscript is equivalent to referencing the array with subscript 0. The value of a variable may be assigned by writing: vname=value or vname[subscript]=value Note that no space is allowed before or after the =. % Korn Shell 93 - Parameter Expansion. A nameref is a variable that is a reference to another variable. A nameref is created with the -n attribute of typeset. The value of the variable at the time of the typeset command becomes the variable that will be referenced whenever the nameref variable is used. The name of a nameref cannot contain a .. When a variable or function name contains a ., and the portion of the name up to the first . matches the name of a nameref, the variable referred to is obtained by replacing the nameref portion with the name of the variable referenced by the nameref. A nameref provides a convenient way to refer to the variable inside a function whose name is passed as an argument to a function. For example, if the name of a variable is passed as the first argument to a function, the command typeset -n var=$1 inside the function causes references and assignments to var to be references and assignments to the variable whose name has been passed to the function. % Korn Shell 93 - Parameter Expansion. If either of the floating point attributes, -E, or -F, or the integer attribute, -i, is set for vname, then the value is subject to arithmetic evaluation. % Korn Shell 93 - Parameter Expansion. Positional parameters, parameters denoted by a number, may be assigned values with the set special built-in command. Parameter $0 is set from argument zero when the shell is invoked. % Korn Shell 93 - Variables ${parameter } The shell reads all the characters from ${ to the matching } as part of the same word even if it contains braces or metacharacters. The value, if any, of the parameter is substituted. The braces are required when parameter is followed by a letter, digit, or underscore that is not to be interpreted as part of its name, when the variable name contains a ., or when a variable is subscripted. If parameter is one or more digits then it is a positional parameter. A positional parameter of more than one digit must be enclosed in braces. If parameter is * or @, then all the positional parameters, starting with $1, are substituted (separated by a field separator character). If an array vname with subscript * or @ is used, then the value for each of the elements is substituted, separated by the first character of the value of IFS. % Korn Shell 93 - Variables ${#parameter } If parameter is * or @, the number of positional parameters is substituted. Otherwise, the length of the value of the parameter is substituted. % Korn Shell 93 - Variables ${#vname[*]} ${#vname[@]} The number of elements in the array vname is substituted. % Korn Shell 93 - Variables ${!vname } Expands to the name of the variable referred to by vname. This will be vname except when vname is a name reference. % Korn Shell 93 - Variables ${!vname [subscript ]} Expands to name of the subscript unless subscript is * or @. When subscript is *, the list of array subscripts for vname is generated. For a variable that is not an array, the value is 0 if the variable is set. Otherwise it is null. When subscript is @, same as above, except that when used in double quotes, each array subscript yields a separate argument. % Korn Shell 93 - Variables ${!prefix *} Expands to the names of the variables whose names begin with prefix. % Korn Shell 93 - Variable testing ${parameter :-word } If parameter is set and is non-null then substitute its value; otherwise substitute word. word is not evaluated unless it is to be used as the substituted string. If the colon ( :) is omitted, the shell only checks whether parameter is set or not. % Korn Shell 93 - Variable testing ${parameter :=word } If parameter is not set or is null then set it to word; the value of the parameter is then substituted. Positional parameters may not be assigned to in this way. word is not evaluated unless it is to be used as the substituted string. If the colon ( :) is omitted, the shell only checks whether parameter is set or not. % Korn Shell 93 - Variable testing ${parameter :?word } If parameter is set and is non-null then substitute its value; otherwise, print word and exit from the shell (if not interactive). If word is omitted then a standard message is printed. word is not evaluated unless it is to be used as the substituted string. If the colon ( :) is omitted, the shell only checks whether parameter is set or not. % Korn Shell 93 - Variable testing ${parameter :+word } If parameter is set and is non-null then substitute word; otherwise substitute nothing. word is not evaluated unless it is to be used as the substituted string. If the colon ( :) is omitted, the shell only checks whether parameter is set or not. % Korn Shell 93 - Variable Substring ${parameter :offset :length } ${parameter :offset } Expands to the portion of the value of parameter starting at the character (counting from 0 ) determined by expanding offset as an arithmetic expression and consisting of the number of characters determined by the arithmetic expression defined by length. In the second form, the remainder of the value is used. If parameter is * or @, or is an array name indexed by * or @, then offset and length refer to the array index and number of elements respectively. % Korn Shell 93 - Variable Substring ${parameter #pattern } ${parameter ##pattern } If the shell pattern matches the beginning of the value of parameter, then the value of this expansion is the value of the parameter with the matched portion deleted; otherwise the value of this parameter is substituted. In the first form the smallest matching pattern is deleted and in the second form the largest matching pattern is deleted. When parameter is @, *, or an array variable with subscript @ or *, the substring operation is applied to each element in turn. % Korn Shell 93 - Variable Substring ${parameter %pattern } ${parameter %%pattern } If the shell pattern matches the end of the value of parameter, then the value of this expansion is the value of the parameter with the matched part deleted; otherwise substitute the value of parameter. In the first form the smallest matching pattern is deleted and in the second form the largest matching pattern is deleted. When parameter is @, *, or an array variable with subscript @ or *, the substring operation is applied to each element in turn. % Korn Shell 93 - Variable Substitution ${parameter /pattern /string } ${parameter //pattern /string } ${parameter /#pattern /string } ${parameter /%pattern /string } Expands parameter and replaces the longest match of pattern with the given string. Each occurrence of \n in string is replaced by the portion of parameter that matches the n -th sub-pattern. In the first form, only the first occurrence of pattern is replaced. In the second form, each match for pattern is replaced by the given string. The third form restricts the pattern match to the beginning of the string while the fourth form restricts the pattern match to the end of the string. When string is null, the pattern will be deleted and the / in front of string may be omitted. When parameter is @, *, or an array variable with subscript @ or *, the substitution operation is applied to each element in turn. % Korn Shell 93 - Special Variables ${#} The number of positional parameters in decimal. % Korn Shell 93 - Special Variables ${-} Options supplied to the shell on invocation or by the set command. % Korn Shell 93 - Special Variables ${?} The decimal value returned by the last executed command. % Korn Shell 93 - Special Variables ${$} The process number of this shell. % Korn Shell 93 - Special Variables ${_} Initially, the value of _ is an absolute pathname of the shell or script being executed as passed in the environment. Subsequently it is assigned the last argument of the previous command. This parameter is not set for commands which are asynchronous. This parameter is also used to hold the name of the matching MAIL file when checking for mail. % Korn Shell 93 - Special Variables ${!} The process number of the last background command invoked. % Korn Shell 93 - Special Variables ${.sh.edchar} This variable contains the value of the keyboard character (or sequence of characters if the first character is an ESC, ascii 033 ) that has been entered when processing a KEYBD trap. If the value is changed as part of the trap action, then the new value replaces the key (or key sequence) that caused the trap. % Korn Shell 93 - Special Variables ${.sh.edcol} The character position of the cursor at the time of the most recent KEYBD trap. % Korn Shell 93 - Special Variables ${.sh.edmode} The value is set to ESC when processing a KEYBD trap while in vi insert mode. Otherwise, .sh.edmode is null when processing a KEYBD trap. % Korn Shell 93 - Special Variables ${.sh.edtext} The characters in the input buffer at the time of the most recent KEYBD trap. The value is null when not processing a KEYBD trap. % Korn Shell 93 - Special Variables ${.sh.name} Set to the name of the variable at the time that a discipline function is invoked. % Korn Shell 93 - Special Variables ${.sh.subscript} Set to the name subscript of the variable at the time that a discipline function is invoked. % Korn Shell 93 - Special Variables ${.sh.value} Set to the value of the variable at the time that the set discipline function is invoked. % Korn Shell 93 - Special Variables ${.sh.version} Set to a value that identifies the version of this shell. % Korn Shell 93 - Variables used by the shell LINENO The current line number within the script or function being executed. % Korn Shell 93 - Variables used by the shell OLDPWD The previous working directory set by the cd command. % Korn Shell 93 - Variables used by the shell OPTARG The value of the last option argument processed by the getopts built-in command. % Korn Shell 93 - Variables used by the shell OPTIND The index of the last option argument processed by the getopts built-in command. % Korn Shell 93 - Variables used by the shell PPID The process number of the parent of the shell. % Korn Shell 93 - Variables used by the shell PWD The present working directory set by the cd command. % Korn Shell 93 - Variables used by the shell RANDOM Each time this variable is referenced, a random integer, uniformly distributed between 0 and 32767, is generated. The sequence of random numbers can be initialized by assigning a numeric value to RANDOM. % Korn Shell 93 - Variables used by the shell REPLY This variable is set by the select statement and by the read built-in command when no arguments are supplied. % Korn Shell 93 - Variables used by the shell SECONDS Each time this variable is referenced, the number of seconds since shell invocation is returned. If this variable is assigned a value, then the value returned upon reference will be the value that was assigned plus the number of seconds since the assignment. % Korn Shell 93 - Variables used by the shell CDPATH The search path for the cd command. % Korn Shell 93 - Variables used by the shell COLUMNS If this variable is set, the value is used to define the width of the edit window for the shell edit modes and for printing select lists. % Korn Shell 93 - Variables used by the shell EDITOR If the value of this variable ends in emacs, gmacs, or vi and the VISUAL variable is not set, then the corresponding option will be turned on. % Korn Shell 93 - Variables used by the shell ENV If this variable is set, then parameter expansion, command substitution, and arithmetic substitution are performed on the value to generate the pathname of the script that will be executed when the shell is invoked. This file is typically used for alias and function definitions. % Korn Shell 93 - Variables used by the shell FCEDIT Obsolete name for the default editor name for the hist command. FCEDIT is not used when HISTEDIT is set. % Korn Shell 93 - Variables used by the shell FIGNORE A pattern that defines the set of filenames that will be ignored when performing filename matching. % Korn Shell 93 - Variables used by the shell FPATH The search path for function definitions. This path is searched for a file with the same name as the function or command when a function with the -u attribute is referenced and when a command is not found. If an executable file with the name of that command is found, then it is read and executed in the current environment. % Korn Shell 93 - Variables used by the shell HISTCMD Number of the current command in the history file. % Korn Shell 93 - Variables used by the shell HISTEDIT Name for the default editor name for the hist command. % Korn Shell 93 - Variables used by the shell HISTFILE If this variable is set when the shell is invoked, then the value is the pathname of the file that will be used to store the command history. % Korn Shell 93 - Variables used by the shell HISTSIZE If this variable is set when the shell is invoked, then the number of previously entered commands that are accessible by this shell will be greater than or equal to this number. The default is 128. % Korn Shell 93 - Variables used by the shell HOME The default argument (home directory) for the cd command. % Korn Shell 93 - Variables used by the shell IFS Internal field separators, normally space, tab, and new-line that are used to separate the results of command substitution or parameter expansion and to separate fields with the built-in command read. The first character of the IFS variable is used to separate arguments for the "$*" substitution. Each single occurrence of an IFS character in the string to be split, that is not in the isspace character class, and any adjacent characters in IFS that are in the isspace character class, delimit a field. One or more characters in IFS that belong to the isspace character class, delimit a field. In addition, if the same isspace character appears consecutively inside IFS, this character is treated as if it were not in the isspace class, so that if IFS consists of two tab characters, then two adjacent tab characters delimit a null field. % Korn Shell 93 - Variables used by the shell LANG This variable determines the locale category for any category not specifically selected with a variable starting with LC_ or LANG. % Korn Shell 93 - Variables used by the shell LC_ALL This variable overrides the value of the LANG variable and any other LC_ variable. % Korn Shell 93 - Variables used by the shell LC_COLLATE This variable determines the locale category for character collation information. % Korn Shell 93 - Variables used by the shell LC_CTYPE This variable determines the locale category for character handling functions. It determines the character classes for pattern matching. % Korn Shell 93 - Variables used by the shell LC_NUMERIC This variable determines the locale category for the decimal point character. % Korn Shell 93 - Variables used by the shell LINES If this variable is set, the value is used to determine the column length for printing select lists. Select lists will print vertically until about two-thirds of LINES lines are filled. % Korn Shell 93 - Variables used by the shell MAIL If this variable is set to the name of a mail file and the MAILPATH variable is not set, then the shell informs the user of arrival of mail in the specified file. % Korn Shell 93 - Variables used by the shell MAILCHECK This variable specifies how often (in seconds) the shell will check for changes in the modification time of any of the files specified by the MAILPATH or MAIL variables. The default value is 600 seconds. When the time has elapsed the shell will check before issuing the next prompt. % Korn Shell 93 - Variables used by the shell MAILPATH A colon ( : ) separated list of file names. If this variable is set, then the shell informs the user of any modifications to the specified files that have occurred within the last MAILCHECK seconds. Each file name can be followed by a ? and a message that will be printed. The message will undergo parameter expansion, command substitution, and arithmetic substitution with the variable $_ defined as the name of the file that has changed. The default message is youhavemailin$_ . % Korn Shell 93 - Variables used by the shell PATH The search path for commands. The user may not change PATH if executing under rsh (except in .profile ). % Korn Shell 93 - Variables used by the shell PS1 The value of this variable is expanded for parameter expansion, command substitution, and arithmetic substitution to define the primary prompt string which by default is ``$ ''. The character ! in the primary prompt string is replaced by the command number. Two successive occurrences of ! will produce a single ! when the prompt string is printed. % Korn Shell 93 - Variables used by the shell PS2 Secondary prompt string, by default ``> ''. % Korn Shell 93 - Variables used by the shell PS3 Selection prompt string used within a select loop, by default ``#? ''. % Korn Shell 93 - Variables used by the shell PS4 The value of this variable is expanded for parameter evaluation, command substitution, and arithmetic substitution and precedes each line of an execution trace. By default, PS4 is ``+ ''. In addition when PS4 is unset, the execution trace prompt is also ``+ ''. % Korn Shell 93 - Variables used by the shell SHELL The pathname of the shell is kept in the environment. At invocation, if the basename of this variable is rsh, rksh, or krsh, then the shell becomes restricted. % Korn Shell 93 - Variables used by the shell TMOUT If set to a value greater than zero, TMOUT will be the default timeout value for the read built-in command. The select compound command terminates after TMOUT seconds when input is from a terminal. Otherwise, the shell will terminate if a line is not entered within the prescribed number of seconds while reading from a terminal. (Note that the shell can be compiled with a maximum bound for this value which cannot be exceeded.) % Korn Shell 93 - Variables used by the shell VISUAL If the value of this variable ends in emacs, gmacs, or vi then the corresponding option will be turned on. The value of VISUAL overrides the value of EDITOR. % Korn Shell 93 - Preset Variables The shell gives default values to PATH, PS1, PS2, PS3, PS4, MAILCHECK, FCEDIT, TMOUT and IFS, while HOME, SHELL, ENV, and MAIL are not set at all by the shell (although HOME is set by login(1)). On some systems MAIL and SHELL are also set by login(1). % Korn Shell 93 - Field Splitting After parameter expansion and command substitution, the results of substitutions are scanned for the field separator characters (those found in IFS ) and split into distinct fields where such characters are found. Explicit null fields ( " " or ' ' ) are retained. Implicit null fields (those resulting from parameters that have no values or command substitutions with no output) are removed. % Korn Shell 93 - File Name Generation. * Matches any string, including the null string. ? Matches any single character. [...] Matches any one of the enclosed characters. % Korn Shell 93 - Equivalence Classes [[:alnum:]] - Matches all alphanumeric characters % Korn Shell 93 - Equivalence Classes [[:alpha:]] - Matches all alphabetic characters % Korn Shell 93 - Equivalence Classes [[:blank:]] - Matches space or tab % Korn Shell 93 - Equivalence Classes [[:ctrl:]] - Matches all control characters % Korn Shell 93 - Equivalence Classes [[:digit:]] - Matches all numeric characters % Korn Shell 93 - Equivalence Classes [[:graph:]] - Matches all non-spaces % Korn Shell 93 - Equivalence Classes [[:lower:]] - Matches all lowercase characters % Korn Shell 93 - Equivalence Classes [[:print:]] - Matches all printable characters % Korn Shell 93 - Equivalence Classes [[:punct:]] - Matches all punctuation characters % Korn Shell 93 - Equivalence Classes [[:space:]] - Matches all whitespace characters % Korn Shell 93 - Equivalence Classes [[:upper:]] - Matches all uppercase characters % Korn Shell 93 - Equivalence Classes [[:word:]] - Similar to [[:alnum:]]. Matches all alphanumeric characters % Korn Shell 93 - Equivalence Classes [[:xdigit:]] - Matches all hexadecimal characters % Korn Shell 93 - Pattern Operators ?(pattern-list ) Optionally matches any one of the given patterns. A pattern-list is a list of one or more patterns separated from each other with a "&" or "|". A & signifies that all patterns must be matched whereas | requires that only one pattern be matched. Composite patterns can be formed with one or more of the following sub-patterns: % Korn Shell 93 - Pattern Operators *(pattern-list ) Matches zero or more occurrences of the given patterns. A pattern-list is a list of one or more patterns separated from each other with a "&" or "|". A & signifies that all patterns must be matched whereas | requires that only one pattern be matched. Composite patterns can be formed with one or more of the following sub-patterns: % Korn Shell 93 - Pattern Operators +(pattern-list ) Matches one or more occurrences of the given patterns. A pattern-list is a list of one or more patterns separated from each other with a "&" or "|". A & signifies that all patterns must be matched whereas | requires that only one pattern be matched. Composite patterns can be formed with one or more of the following sub-patterns: % Korn Shell 93 - Pattern Operators @(pattern-list ) Matches exactly one of the given patterns. A pattern-list is a list of one or more patterns separated from each other with a "&" or "|". A & signifies that all patterns must be matched whereas | requires that only one pattern be matched. Composite patterns can be formed with one or more of the following sub-patterns: % Korn Shell 93 - Pattern Operators !(pattern-list ) Matches anything except one of the given patterns. A pattern-list is a list of one or more patterns separated from each other with a "&" or "|". A & signifies that all patterns must be matched whereas | requires that only one pattern be matched. Composite patterns can be formed with one or more of the following sub-patterns: % Korn Shell 93 - Quoting A character may be quoted (i.e., made to stand for itself) by preceding it with a \. The pair \new-line is removed. % Korn Shell 93 - Quoting All metacharacters are suppressed between single quote marks. % Korn Shell 93 - Quoting All metacharacters are suppressed between double quote marks except $, \, and `. % Korn Shell 93 - Arithmetic Evaluation An arithmetic expression uses the same syntax, precedence, and associativity of expression as the C language. All the C language operators that apply to floating point quantities can be used. In addition, when the value of an arithmetic variable or sub-expression can be represented as a long integer, all C language integer arithmetic operations can be performed. Variables can be referenced by name within an arithmetic expression without using the parameter expansion syntax. When a variable is referenced, its value is evaluated as an arithmetic expression. % Korn Shell 93 - Arithmetic Evaluation The following math library functions can be used with an arithmetic expression: abs acos asin atan cos cosh exp int log sin sinh sqrt tan tanh % Korn Shell 93 - Arithmetic Evaluation An internal representation of a variable as a double precision floating point can be specified with the -E [ n ] or -F [ n ] option of the typeset special built-in command. % Korn Shell 93 - Arithmetic Evaluation typeset -E The -E option causes the expansion of the value to be represented using scientific notation when it is expanded. The optional option argument n defines the number of significant figures. % Korn Shell 93 - Arithmetic Evaluation typeset -F The -F option causes the expansion to be represented as a floating decimal number when it is expanded. The optional option argument n defines the number of places after the decimal point in this case. % Korn Shell 93 - Arithmetic Evaluation typeset -i An internal integer representation of a variable can be specified with the -i [ n ] option of the typeset special built-in command. The optional option argument n specifies an arithmetic base to be used when expanding the variable. If you do not specify an arithmetic base, the first assignment to the variable determines the arithmetic base. % Korn Shell 93 - Prompting When used interactively, the shell prompts with the value of PS1 after expanding it for parameter expansion, command substitution, and arithmetic substitution, before reading a command. In addition, each single ! in the prompt is replaced by the command number. A !! is required to place ! in the prompt. % Korn Shell 93 - Conditional Expressions [[ string ]] True, if string is not null. % Korn Shell 93 - Conditional Expressions [[ -a file ]] Same as -e below. This is obsolete. % Korn Shell 93 - Conditional Expressions [[ -b file ]] True, if file exists and is a block special file. % Korn Shell 93 - Conditional Expressions [[ -c file ]] True, if file exists and is a character special file. % Korn Shell 93 - Conditional Expressions [[ -d file ]] True, if file exists and is a directory. % Korn Shell 93 - Conditional Expressions [[ -e file ]] True, if file exists. % Korn Shell 93 - Conditional Expressions [[ -f file ]] True, if file exists and is an ordinary file. % Korn Shell 93 - Conditional Expressions [[ -g file ]] True, if file exists and it has its setgid bit set. % Korn Shell 93 - Conditional Expressions [[ -k file ]] True, if file exists and it has its sticky bit set. % Korn Shell 93 - Conditional Expressions [[ -n string ]] True, if length of string is non-zero. % Korn Shell 93 - Conditional Expressions [[ -o option ]] True, if option named option is on. % Korn Shell 93 - Conditional Expressions [[ -p file ]] True, if file exists and is a fifo special file or a pipe. % Korn Shell 93 - Conditional Expressions [[ -r file ]] True, if file exists and is readable by current process. % Korn Shell 93 - Conditional Expressions [[ -s file ]] True, if file exists and has size greater than zero. % Korn Shell 93 - Conditional Expressions [[ -t fildes ]] True, if file descriptor number fildes is open and associated with a terminal device. % Korn Shell 93 - Conditional Expressions [[ -u file ]] True, if file exists and it has its setuid bit set. % Korn Shell 93 - Conditional Expressions [[ -w file ]] True, if file exists and is writable by current process. % Korn Shell 93 - Conditional Expressions [[ -x file ]] True, if file exists and is executable by current process. If file exists and is a directory, then true if the current process has permission to search in the directory. % Korn Shell 93 - Conditional Expressions [[ -z string ]] True, if length of string is zero. % Korn Shell 93 - Conditional Expressions [[ -L file ]] True, if file exists and is a symbolic link. % Korn Shell 93 - Conditional Expressions [[ -O file ]] True, if file exists and is owned by the effective user id of this process. % Korn Shell 93 - Conditional Expressions [[ -G file ]] True, if file exists and its group matches the effective group id of this process. % Korn Shell 93 - Conditional Expressions [[ -S file ]] True, if file exists and is a socket. % Korn Shell 93 - Conditional Expressions [[ file1 -nt file2 ]] True, if file1 exists and file2 does not, or file1 is newer than file2. % Korn Shell 93 - Conditional Expressions [[ file1 -ot file2 ]] True, if file2 exists and file1 does not, or file1 is older than file2. % Korn Shell 93 - Conditional Expressions [[ file1 -ef file2 ]] True, if file1 and file2 exist and refer to the same file. % Korn Shell 93 - Conditional Expressions [[ string == pattern ]] True, if string matches pattern. Any part of pattern can be quoted to cause it to be matched as a string. % Korn Shell 93 - Conditional Expressions [[ string = pattern ]] Same as == above, but is obsolete. % Korn Shell 93 - Conditional Expressions [[ string != pattern ]] True, if string does not match pattern. % Korn Shell 93 - Conditional Expressions [[ string1 < string2 ]] True, if string1 comes before string2 based on ASCII value of their characters. % Korn Shell 93 - Conditional Expressions [[ string1 > string2 ]] True, if string1 comes after string2 based on ASCII value of their characters. % Korn Shell 93 - Conditional Expressions [[ exp1 -eq exp2 ]] True, if exp1 is equal to exp2. Obsolete syntax % Korn Shell 93 - Conditional Expressions [[ exp1 -ne exp2 ]] True, if exp1 is not equal to exp2. Obsolete syntax % Korn Shell 93 - Conditional Expressions [[ exp1 -lt exp2 ]] True, if exp1 is less than exp2. Obsolete syntax % Korn Shell 93 - Conditional Expressions [[ exp1 -gt exp2 ]] True, if exp1 is greater than exp2. Obsolete syntax % Korn Shell 93 - Conditional Expressions [[ exp1 -le exp2 ]] True, if exp1 is less than or equal to exp2. Obsolete syntax % Korn Shell 93 - Conditional Expressions [[ exp1 -ge exp2 ]] True, if exp1 is greater than or equal to exp2. Obsolete syntax % Korn Shell 93 - Compound Expressions (expression) True, if expression is true. Used to group expressions. expression can be any Unix command. % Korn Shell 93 - Compound Expressions ! expression True if expression is false. expression can be any Unix command. % Korn Shell 93 - Compound Expressions expression1 && expression2 True, if expression1 and expression2 are both true. expression can be any Unix command. % Korn Shell 93 - Compound Expressions expression1 || expression2 True, if either expression1 or expression2 is true. expression can be any Unix command. % Korn Shell 93 - Input/Output word Redirect standard output (file descriptor 1) to a file specified by "word". If the file does not exist then it is created. If the file exists, and the noclobber option is on, this causes an error; otherwise, it is truncated to zero length. % Korn Shell 93 - Input/Output >|word Sames as >, except that it overrides the noclobber option. % Korn Shell 93 - Input/Output >>word Redirect standard output (file descriptor 1) to a file specified by "word". If the file exists, then output is appended to it (by first seeking to the end-of-file); otherwise, the file is created. % Korn Shell 93 - Input/Output <>word Open file word for reading and writing as standard input. % Korn Shell 93 - Input/Output <<[ - ]word The shell input is read up to a line that is the same as word after any quoting has been removed, or to an end-of-file. No parameter substitution, command substitution, arithmetic substitution or file name generation is performed on word. The resulting document, called a here-document, becomes the standard input. If any character of word is quoted, then no interpretation is placed upon the characters of the document; otherwise, parameter expansion, command substitution, and arithmetic substitution occur, \new-line is ignored, and \ must be used to quote the characters \, $, `. If - is appended to <<, then all leading tabs are stripped from word and from the document. % Korn Shell 93 - Input/Output <&digit The standard input is duplicated from file descriptor digit. Similarly for the standard output using >& digit. % Korn Shell 93 - Input/Output <&digit- The file descriptor given by digit is moved to standard input. Similarly for the standard output using >& digit-. % Korn Shell 93 - Input/Output <&- The standard input is closed. Similarly for the standard output using >&-. % Korn Shell 93 - Input/Output <&p The input from the co-process is moved to standard input. % Korn Shell 93 - Input/Output >&p The output to the co-process is moved to standard output. % Korn Shell 93 - Input/Output 2>&1 Means file descriptor 2 is to be opened for writing as a duplicate of file descriptor 1. % Korn Shell 93 - Input/Output The order in which redirections are specified is significant. The shell evaluates each redirection in terms of the (file descriptor, file) association at the time of evaluation. For example: 1>fname 2>&1 first associates file descriptor 1 with file fname . It then associates file descriptor 2 with the file associated with file descriptor 1 (i.e. fname ). If the order of redirections were reversed, file descriptor 2 would be associated with the terminal (assuming file descriptor 1 had been) and then file descriptor 1 would be associated with file fname . % Korn Shell 93 - Input/Output If a command is followed by "&" and job control is not active, then the default standard input for the command is the empty file /dev/null. Otherwise, the environment for the execution of a command contains the file descriptors of the invoking shell as modified by input/output specifications. % Korn Shell 93 - Environment The environment is a list of name-value pairs that is passed to an executed program in the same way as a normal argument list. The names must be identifiers and the values are character strings. The shell interacts with the environment in several ways. % Korn Shell 93 - Functions For historical reasons, there are two ways to define functions, the name( ) syntax and the function name syntax. Shell functions are read in and stored internally. % Korn Shell 93 - Functions Functions defined by the function name syntax and called by name execute in the same process as the caller and share all files and present working directory with the caller. % Korn Shell 93 - Functions Functions defined with the name( ) syntax and functions defined with the function name syntax that are invoked with the . special built-in are executed in the caller's environment and share all variables and traps with the caller. Errors within these function executions cause the script that contains them to abort. % Korn Shell 93 - Functions The special built-in command "return" is used to return from function calls. % Korn Shell 93 - Functions Function names can be listed with the -f or +f option of the typeset special built-in command. The text of functions, when available, will also be listed with -f. Functions can be undefined with the -f option of the unset special built-in command. % Korn Shell 93 - Functions Ordinarily, functions are unset when the shell executes a shell script. Functions that need to be defined across separate invocations of the shell should be placed in a directory and the FPATH variable should contain the name of this directory. They may also be specified in the ENV file. % Korn Shell 93 - Discipline Functions Each variable can have zero or more discipline functions associated with it. The shell initially understands the discipline names get, set, and unset but on most systems others can be added at run time via the C programming interface extension provided by the builtin built-in utility. % Korn Shell 93 - Discipline Functions If the get discipline function is defined for a variable, it is invoked whenever the given variable is referenced. If the variable .sh.value is assigned a value inside the discipline function, the referenced variable will evaluate to this value instead. % Korn Shell 93 - Discipline Functions If the set discipline function is defined for a variable, it is invoked whenever the given variable is assigned a value. The variable .sh.value is given the value of the variable before invoking the discipline, and the variable will be assigned the value of .sh.value after the discipline completes. If .sh.value is unset inside the discipline, then that value is unchanged. % Korn Shell 93 - Discipline Functions If the unset discipline function is defined for a variable, it is invoked whenever the given variable is unset. The variable will not be unset unless it is unset explicitly from within this discipline function. % Korn Shell 93 - Discipline Functions The variable .sh.name contains the name of the variable for which the discipline function is called, .sh.subscript is the subscript of the variable, and .sh.value will contain the value being assigned inside the .set discipline function. For the set discipline, changing .sh.value will change the value that gets assigned. % Korn Shell 93 - Jobs If the monitor option of the set command is turned on, an interactive shell associates a job with each pipeline. It keeps a table of current jobs, printed by the "jobs" command, and assigns them small integer numbers. When a job is started asynchronously with &, the shell prints a line which looks like: [1] 1234 indicating that the job which was started asynchronously was job number 1 and had one (top-level) process, whose process id was 1234. % Korn Shell 93 - Jobs If you are running a job and wish to do something else you may hit the key ^Z (control-Z) which sends a STOP signal to the current job. The shell will then normally indicate that the job has been `Stopped', and print another prompt. % Korn Shell 93 - Jobs After "stopping" a process using a control-Z, put the job in the background using the "bg" command or put the job in the foreground using the "fg" command. % Korn Shell 93 - Jobs A job being run in the background will stop if it tries to read from the terminal. Background jobs are normally allowed to produce output, but this can be disabled by giving the command "stty tostop". If you set this tty option, then background jobs will stop when they try to produce output like they do when they try to read input. % Korn Shell 93 - Jobs A job can be referred to by the process id of any process of the job or by one of the following: %number The job with the given number. %string Any job whose command line begins with string. %?string Any job whose command line contains string. %% Current job. %+ Equivalent to %%. %- Previous job. % Korn Shell 93 - Jobs The shell learns immediately whenever a process changes state. It normally informs you whenever a job becomes blocked so that no further progress is possible, but only just before it prints a prompt. This is done so that it does not otherwise disturb your work. The notify option of the set command causes the shell to print these job change messages as soon as they occur. % Korn Shell 93 - Jobs When you try to leave the shell while jobs are running or stopped, you will be warned that `You have stopped(running) jobs.' You may use the "jobs" command to see what they are. If you immediately try to exit again, the shell will not warn you a second time, and the stopped jobs will be terminated. % Korn Shell 93 - Signals The INT and QUIT signals for an invoked command are ignored if the command is followed by "&" and the monitor option is not active. Otherwise, signals have the values inherited by the shell from its parent. % Korn Shell 93 - Command Re-entry The text of the last HISTSIZE (default 128) commands entered from a terminal device is saved in a history file. The file $HOME/.sh_history is used if the HISTFILE variable is not set or if the file it names is not writable. A shell can access the commands of all interactive shells which use the same named HISTFILE. % Korn Shell 93 - Emacs mode (set -o emacs ) key bindings ^F Move cursor forward (right) one character. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-f Move cursor forward one word. (The emacs editor's idea of a word is a string of characters consisting of only letters, digits and underscores.) % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^B Move cursor backward (left) one character. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-b Move cursor backward one word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^A Move cursor to start of line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^E Move cursor to end of line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^]char Move cursor forward to character char on current line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-^]char Move cursor backward to character char on current line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^X^X Interchange the cursor and mark. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings erase (User defined erase character as defined by the stty(1) command, usually ^H or #.) Delete previous character. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^D Delete current character. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-d Delete current word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-^H (Meta-backspace) Delete previous word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-h Delete previous word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-^? (Meta-DEL) Delete previous word (if your interrupt character is ^? (DEL, the default) then this command will not work). % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^T Transpose current character with previous character and advance the cursor in emacs mode. Transpose two previous characters in gmacs mode. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^C Capitalize current character. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-c Capitalize current word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-l Change the current word to lower case. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^K Delete from the cursor to the end of the line. If preceded by a numerical parameter whose value is less than the current cursor position, then delete from given position up to the cursor. If preceded by a numerical parameter whose value is greater than the current cursor position, then delete from cursor up to given cursor position. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^W Kill from the cursor to the mark. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-p Push the region from the cursor to the mark on the stack. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings kill (User defined kill character as defined by the stty command, usually ^G or @.) Kill the entire current line. If two kill characters are entered in succession, all kill characters from then on cause a line feed (useful when using paper terminals). % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^Y Restore last item removed from line. (Yank item back to the line.) % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^L Line feed and print current line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^@ (Null character) Set mark. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-space (Meta space) Set mark. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^J (New line) Execute the current line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^M (Return) Execute the current line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings eof End-of-file character, normally ^D, is processed as an End-of-file only if the current line is null. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^P Fetch previous command. Each time ^P is entered the previous command back in time is accessed. Moves back one line when not on the first line of a multi-line command. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-< Fetch the least recent (oldest) history line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-> Fetch the most recent (youngest) history line. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^N Fetch next command line. Each time ^N is entered the next command line forward in time is accessed. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^Rstring Reverse search history for a previous command line containing string. If a parameter of zero is given, the search is forward. String is terminated by a `RETURN' or `NEW LINE'. If string is preceded by a ^, the matched line must begin with string. If string is omitted, then the next command line containing the most recent string is accessed. In this case a parameter of zero reverses the direction of the search. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^O Operate - Execute the current line and fetch the next line relative to current line from the history file. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-digits (Escape) Define numeric parameter, the digits are taken as a parameter to the next command. The commands that accept a parameter are ^F, ^B, erase, ^C, ^D, ^K, ^R, ^P, ^N, ^], M-., M-^], M-_, M-b, M-c, M-d, M-f, M-h, M-l and M-^H. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-letter Soft-key - Your alias list is searched for an alias by the name _letter and if an alias of this name is defined, its value will be inserted on the input queue. The letter must not be one of the above meta-functions. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-[letter Soft-key - Your alias list is searched for an alias by the name __letter and if an alias of this name is defined, its value will be inserted on the input queue. The can be used to program functions keys on many terminals. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-. The last word of the previous command is inserted on the line. If preceded by a numeric parameter, the value of this parameter determines which word to insert rather than the last word. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-_ Same as M-.. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-* Attempt file name generation on the current word. An asterisk is appended if the word doesn't match any file or contain any special pattern characters. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-ESC Command or file name completion as described above. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-= Command or file name listing as described above. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^U Multiply parameter of next command by 4. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings \ Escape next character. Editing characters, the user's erase, kill and interrupt (normally ^?) characters may be entered in a command line or in a search string if preceded by a \. The \ removes the next character's editing features (if any). % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings ^V Display version of the shell. % Korn Shell 93 - Emacs Mode (set -o emacs) key bindings M-# If the line does not begin with a #, a # is inserted at the beginning of the line and after each new-line, and the line is entered. This causes a comment to be inserted in the history file. If the line begins with a #, the # is deleted and one # after each new-line is also deleted. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings erase (User defined erase character as defined by the stty command, usually ^H or #.) Delete previous character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^W Delete the previous blank separated word. On some systems the viraw option may be required for this to work. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings eof As the first character of the line causes the shell to terminate unless the ignoreeof option is set. Otherwise this character is ignored. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^V Escape next character. Editing characters and the user's erase or kill characters may be entered in a command line or in a search string if preceded by a ^V. The ^V removes the next character's editing features (if any). On some systems the viraw option may be required for this to work. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings \ Escape the next erase or kill character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]l Cursor forward (right) one character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]w Cursor forward one alpha-numeric word. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]W Cursor to the beginning of the next word that follows a blank. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]e Cursor to end of word. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]E Cursor to end of the current blank delimited word. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]h Cursor backward (left) one character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]b Cursor backward one word. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]B Cursor to preceding blank separated word. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]| Cursor to column count. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]fc Find the next character c in the current line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]Fc Find the previous character c in the current line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]tc Equivalent to f followed by h. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]Tc Equivalent to F followed by l. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]; Repeats count times, the last single character find command, f, F, t, or T. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count], Reverses the last single character find command count times. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings 0 Cursor to start of line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^ Cursor to first non-blank character in line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings $ Cursor to end of line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings % Moves to balancing (, ), {, }, [, or ]. If cursor is not on one of the above characters, the remainder of the line is searched for the first occurrence of one of the above characters first. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]k Fetch previous command. Each time k is entered the previous command back in time is accessed. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]- Equivalent to k. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]j Fetch next command. Each time j is entered the next command forward in time is accessed. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]+ Equivalent to j. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]G The command number count is fetched. The default is the least recent history command. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings /string Search backward through history for a previous command containing string. String is terminated by a `RETURN' or `NEW LINE'. If string is preceded by a ^, the matched line must begin with string. If string is null, the previous string will be used. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ?string Same as / except that search will be in the forward direction. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings n Search for next match of the last pattern to / or ? commands. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings N Search for next match of the last pattern to / or ?, but in reverse direction. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings a Enter input mode and enter text after the current character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings A Append text to the end of the line. Equivalent to $a. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]cmotion c[count]motion Delete current character through the character that motion would move the cursor to and enter input mode. If motion is c, the entire line will be deleted and input mode entered. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings C Delete the current character through the end of line and enter input mode. Equivalent to c$. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings S Equivalent to cc. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]s Replace characters under the cursor in input mode. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings D Delete the current character through the end of line. Equivalent to d$. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]dmotion d[count]motion Delete current character through the character that motion would move to. If motion is d, the entire line will be deleted. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings i Enter input mode and insert text before the current character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings I Insert text before the beginning of the line. Equivalent to 0i. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]P Place the previous text modification before the cursor. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]p Place the previous text modification after the cursor. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings R Enter input mode and replace characters on the screen with characters you type overlay fashion. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]rc Replace the count character(s) starting at the current cursor position with c, and advance the cursor. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]x Delete current character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]X Delete preceding character. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]. Repeat the previous text modification command. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]~ Invert the case of the count character(s) starting at the current cursor position and advance the cursor. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]_ Causes the count word of the previous command to be appended and input mode entered. The last word is used if count is omitted. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings * Causes an * to be appended to the current word and file name generation attempted. If no match is found, it rings the bell. Otherwise, the word is replaced by the matching pattern and input mode is entered. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings \ Command or file name completion as described above. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]ymotion y[count]motion Yank current character through character that motion would move the cursor to and puts them into the delete buffer. The text and cursor are unchanged. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings yy Yanks the entire line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings Y Yanks from current position to end of line. Equivalent to y$. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings u Undo the last text modifying command. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings U Undo all the text modifying commands performed on the line. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings [count]v Returns the command hist -e ${VISUAL:-${EDITOR:-vi}} count in the input buffer. If count is omitted, then the current line is used. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^L Line feed and print current line. Has effect only in control mode. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^J (New line) Execute the current line, regardless of mode. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^M (Return) Execute the current line, regardless of mode. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings # If the first character of the command is a #, then this command deletes this # and each # that follows a newline. Otherwise, sends the line after inserting a # in front of each line in the command. Useful for causing the current line to be inserted in the history as a comment and uncommenting previously commented commands in the history file. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings = Command or file name listing as described above. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings @letter Your alias list is searched for an alias by the name _letter and if an alias of this name is defined, its value will be inserted on the input queue for processing. % Korn Shell 93 - Vi Editing Mode (set -o vi) key bindings ^V Display version of the shell. Built-in Commands. % Korn Shell 93 - Built-in Commands : [ arg ... ] The command only expands parameters. % Korn Shell 93 - Built-in Commands . name [ arg ... ] If name is a function defined with the function name reserved word syntax, the function is executed in the current environment (as if it had been defined with the name() syntax.) Otherwise if name refers to a file, the file is read in its entirety and the commands are executed in the current shell environment. The search path specified by PATH is used to find the directory containing the file. If any arguments arg are given, they become the positional parameters while processing the . command and the original positional parameters are restored upon completion. Otherwise the positional parameters are unchanged. The exit status is the exit status of the last command executed. % Korn Shell 93 - Built-in Commands alias [ -ptx ] [ name[ =value ] ] ... alias with no arguments prints the list of aliases in the form name=value on standard output. The -p option causes the word alias to be inserted before each one. When one or more arguments are given, an alias is defined for each name whose value is given. A trailing space in value causes the next word to be checked for alias substitution. The obsolete -t option is used to set and list tracked aliases. The value of a tracked alias is the full pathname corresponding to the given name. The value becomes undefined when the value of PATH is reset but the alias remains tracked. Without the -t option, for each name in the argument list for which no value is given, the name and value of the alias is printed. The obsolete -x option has no effect. The exit status is non-zero if a name is given, but no value, and no alias has been defined for the name . % Korn Shell 93 - Built-in Commands bg [ job ... ] This command is only on systems that support job control. Puts each specified job into the background. The current job is put in the background if job is not specified. See Jobs for a description of the format of job. % Korn Shell 93 - Built-in Commands break [ n ] Exit from the enclosing for , while , until , or select loop, if any. If n is specified, then break n levels. % Korn Shell 93 - Built-in Commands builtin [ -ds ] [ -f file ] [ name ... ] If name is not specified, and no -f option is specified, the built-ins are printed on standard output. The -s option prints only the special built-ins. Otherwise, each name represents the pathname whose basename is the name of the built-in. The entry point function name is determined by prepending b_ to the built-in name. Special built-ins cannot be bound to a pathname or deleted. The -d option deletes each of the given built-ins. On systems that support dynamic loading, the -f option names a shared library containing the code for built-ins. Once a library is loaded, its symbols become available for subsequent invocations of builtin. Multiple libraries can be specified with separate invocations of the builtin command. Libraries are searched in the reverse order in which they are specified. When a library is loaded, it looks for a function in the library whose name is lib_init() and invokes this function with an argument of 0. % Korn Shell 93 - Built-in Commands cd [ -LP ] [ arg ] Changes the current directory to arg. If arg is - the directory is changed to the previous directory. The shell variable HOME is the default arg. The variable PWD is set to the current directory. The shell variable CDPATH defines the search path for the directory containing arg. Alternative directory names are separated by a colon (:). The default path is (specifying the current directory). Note that the current directory is specified by a null path name, which can appear immediately after the equal sign or between the colon delimiters anywhere else in the path list. If arg begins with a / then the search path is not used. Otherwise, each directory in the path is searched for arg. % Korn Shell 93 - Built-in Commands cd [ -LP ] old new Substitutes the string new for the string old in the current directory name, PWD, and tries to change to this new directory. By default, symbolic link names are treated literally when finding the directory name. This is equivalent to the -L option. The -P option causes symbolic links to be resolved when determining the directory. The last instance of -L or -P on the command line determines which method is used. The cd command may not be executed by rsh . % Korn Shell 93 - Built-in Commands command [ -pvV ] name [ arg ... ] Without the -v or -V options, command executes name with the arguments given by arg. The -p option causes a default path to be searched rather than the one defined by the value of PATH. Functions will not be searched for when finding name. In addition, if name refers to a special built-in, none of the special properties associated with the leading daggers will be honored. (For example, the predefined alias redirect='command exec' prevents a script from terminating when an invalid redirection is given.) With the -v option, command is equivalent to the built-in whence command described below. The -V option causes command to act like whence -v. % Korn Shell 93 - Built-in Commands continue [ n ] Resume the next iteration of the enclosing for , while , until , or select loop. If n is specified, then resume at the n-th enclosing loop. % Korn Shell 93 - Built-in Commands disown [ job ... ] Causes the shell not to send a HUP signal to each given job, or all active jobs if job is omitted, when a login shell terminates. % Korn Shell 93 - Built-in Commands echo [ arg ... ] When the first arg does not begin with a -, and none of the arguments contain a \, then echo prints each of its arguments separated by a space and terminated by a new-line. Otherwise, the behavior of echo is system dependent and print or printf described below should be used. See echo(1) for usage and description. % Korn Shell 93 - Built-in Commands eval [ arg ... ] The arguments are read as input to the shell and the resulting command(s) executed. % Korn Shell 93 - Built-in Commands exec [ -c ] [ -a name ] [ arg ... ] If arg is given, the command specified by the arguments is executed in place of this shell without creating a new process. The -c option causes the environment to be cleared before applying variable assignments associated with the exec invocation. The -a option causes name rather than the first arg, to become argv[0] for the new process. Input/output arguments may appear and affect the current process. If arg is not given, the effect of this command is to modify file descriptors as prescribed by the input/output redirection list. In this case, any file descriptor numbers greater than 2 that are opened with this mechanism are closed when invoking another program. % Korn Shell 93 - Built-in Commands exit [ n ] Causes the shell to exit with the exit status specified by n. The value will be the least significant 8 bits of the specified status. If n is omitted, then the exit status is that of the last command executed. An end-of-file will also cause the shell to exit except for a shell which has the ignoreeof option (see set below) turned on. % Korn Shell 93 - Built-in Commands export [ -p ] [ name [ =value ] ] ... If name is not given, the names and values of each variable with the export attribute are printed with the values quoted in a manner that allows them to be re-input. The -p option causes the word export to be inserted before each one. Otherwise, the given names are marked for automatic export to the environment of subsequently-executed commands. % Korn Shell 93 - Built-in Commands false Does nothing, and exits 1. Used with until for infinite loops. % Korn Shell 93 - Built-in Commands fg [ job ... ] This command is only on systems that support job control. Each job specified is brought to the foreground and waited for in the specified order. Otherwise, the current job is brought into the foreground. See Jobs for a description of the format of job. % Korn Shell 93 - Built-in Commands getconf [ name [ pathname ] ] Prints the current value of the configuration parameter given by name. The configuration parameters are defined by the IEEE POSIX 1003.1 and IEEE POSIX 1003.2 standards. (See pathconf(2) and sysconf(2).) The pathname argument is required for parameters whose value depends on the location in the file system. If no arguments are given, getconf prints the names and values of the current configuration parameters. The pathname / is used for each of the parameters that requires pathname. % Korn Shell 93 - Built-in Commands getopts [ -a name ] optstring vname [ arg ... ] Checks arg for legal options. If arg is omitted, the positional parameters are used. An option argument begins with a + or a -. An option not beginning with + or - or the argument - - ends the options. optstring contains the letters that getopts recognizes. If a letter is followed by a :, that option is expected to have an argument. The options can be separated from the argument by blanks. The option -? causes getopts to generate a usage message on standard error. The -a argument can be used to specify the name to use for the usage message, which defaults to $0. getopts places the next option letter it finds inside variable vname each time it is invoked. The option letter will be prepended with a + when arg begins with a +. The index of the next arg is stored in OPTIND. The option argument, if any, gets stored in OPTARG. A leading : in optstring causes getopts to store the letter of an invalid option in OPTARG, and to set vname to ? for an unknown option and to : when a required option is missing. Otherwise, getopts prints an error message. The exit status is non-zero when there are no more options. There is no way to specify any of the options :, +, -, ?, [, and ]. The option # can only be specified as the first option. % Korn Shell 93 - Built-in Commands hist [ -e ename ] [ -nlr ] [ first [ last ] ] hist -s [ old\=new ] [ command ] In the first form, a range of commands from first to last is selected from the last HISTSIZE commands that were typed at the terminal. The arguments first and last may be specified as a number or as a string. A string is used to locate the most recent command starting with the given string. A negative number is used as an offset to the current command number. If the -l option is selected, the commands are listed on standard output. Otherwise, the editor program ename is invoked on a file containing these keyboard commands. If ename is not supplied, then the value of the variable HISTEDIT is used. If HISTEDIT is not set, then FCEDIT (default /bin/ed ) is used as the editor. When editing is complete, the edited command(s) is executed if the changes have been saved. If last is not specified, then it will be set to first. If first is not specified, the default is the previous command for editing and -16 for listing. The option -r reverses the order of the commands and the option -n suppresses command numbers when listing. In the second form, command is interpreted as first described above and defaults to the last command executed. The resulting command is executed after the optional substitution old =new is performed. % Korn Shell 93 - Built-in Commands jobs [ -lnp ] [ job \... ] Lists information about each given job; or all active jobs if job is omitted. The -l option lists process ids in addition to the normal information. The -n option only displays jobs that have stopped or exited since last notified. The -p option causes only the process group to be listed. See Jobs for a description of the format of job. % Korn Shell 93 - Built-in Commands kill [ -s signame ] job ... kill [ -n signum ] job ... kill -l [ sig ... ] Sends either the TERM (terminate) signal or the specified signal to the specified jobs or processes. Signals are either given by number with the -n option or by name with the -s option (as given in , stripped of the prefix ``SIG'' with the exception that SIGCLD is named CHLD). For backward compatibility, the n and s can be omitted and the number or name placed immediately after the -. If the signal being sent is TERM (terminate) or HUP (hangup), then the job or process will be sent a CONT (continue) signal if it is stopped. The argument job can be the process id of a process that is not a member of one of the active jobs. See Jobs for a description of the format of job. In the third form, kill -l, if sig is not specified, the signal names are listed. Otherwise, for each sig that is a name, the corresponding signal number is listed. For each sig that is a number, the signal name corresponding to the least significant 8 bits of sig is listed. % Korn Shell 93 - Built-in Commands let arg ... Each arg is a separate arithmetic expression to be evaluated. See ArithmeticEvaluation above, for a description of arithmetic expression evaluation. The exit status is 0 if the value of the last expression is non-zero, and 1 otherwise. % Korn Shell 93 - Built-in Commands newgrp [ arg ... ] Equivalent to exec /bin/newgrp arg ... . % Korn Shell 93 - Built-in Commands print [ -Rnprs ] [ -u unit ] [ -f format ] [ arg ... ] With no options or with option - or - -, each arg is printed on standard output. The -f option causes the arguments to be printed as described by printf. In this case, any n, r, R options are ignored. % Korn Shell 93 - Escape Sequence Processing $'\a' The alert character (ascii 07). % Korn Shell 93 - Escape Sequence Processing $'\b' The backspace character (ascii 010). % Korn Shell 93 - Escape Sequence Processing $'\c' Causes print to end without processing more arguments and not adding a new-line. % Korn Shell 93 - Escape Sequence Processing $'\f' The formfeed character (ascii 014). % Korn Shell 93 - Escape Sequence Processing $'\n' The new-line character (ascii 012). % Korn Shell 93 - Escape Sequence Processing $'\r' The carriage return character (ascii 015). % Korn Shell 93 - Escape Sequence Processing $'\t' The tab character (ascii 011). % Korn Shell 93 - Escape Sequence Processing $'\v' The vertical tab character (ascii 013). % Korn Shell 93 - Escape Sequence Processing $'\E' The escape character (ascii 033). % Korn Shell 93 - Escape Sequence Processing $'\\' The backslash character \. % Korn Shell 93 - Escape Sequence Processing $'\0x' The character defined by the 1, 2, or 3-digit octal string given by x. % Korn Shell 93 - Built-in Commands printf format [ arg ... ] The arguments arg are printed on standard output in accordance with the ANSI-C formatting rules associated with the format string format. If the number of arguments exceeds the number of format specifications, the format string is reused to format remaining arguments. The following extensions can also be used: A %b format can be used instead of %s to cause escape sequences in the corresponding arg to be expanded as described in print. A %P format can be used instead of %s to cause arg to be interpreted as an extended regular expression and be printed as a shell pattern. A %q format can be used instead of %s to cause the resulting string to be quoted in a manner than can be reinput to the shell. The precision field of the %d format can be followed by a . and the output base. % Korn Shell 93 - Built-in Commands pwd [ -LP ] Outputs the value of the current working directory. The -L option is the default; it prints the logical name of the current directory. If the -P option is given, all symbolic links are resolved from the name. The last instance of -L or -P on the command line determines which method is used. % Korn Shell 93 - Built-in Commands read [-Aprs] [-d delim] [-t timeout] [-u unit] [vname?prompt ] [vname ...] The shell input mechanism. One line is read and is broken up into fields using the characters in IFS as separators. % Korn Shell 93 - Built-in Commands readonly [ -p ] [ vname[ =value ] ] ... If vname is not given, the names and values of each variable with the readonly attribute is printed with the values quoted in a manner that allows them to be re-inputted. The -p option causes the word readonly to be inserted before each one. Otherwise, the given vnames are marked readonly and these names cannot be changed by subsequent assignment. % Korn Shell 93 - Built-in Commands return [ n ] Causes a shell function or . script to return to the invoking script with the exit status specified by n. The value will be the least significant 8 bits of the specified status. If n is omitted, then the return status is that of the last command executed. If return is invoked while not in a function or a . script, then it behaves the same as exit. % Korn Shell 93 - Built-in Commands set -A Array assignment. Unset the variable vname and assign values sequentially from the arg list. If +A is used, the variable vname is not unset first. % Korn Shell 93 - Built-in Commands - set set -C Prevents redirection > from truncating existing files. Files that are created are opened with the O_EXCL mode. Requires >| to truncate a file when turned on. % Korn Shell 93 - Built-in Commands - set set -a All subsequent variables that are defined are automatically exported. % Korn Shell 93 - Built-in Commands - set set -b Prints job completion messages as soon as a background job changes state rather than waiting for the next prompt. % Korn Shell 93 - Built-in Commands - set set -e If a command has a non-zero exit status, execute the ERR trap, if set, and exit. This mode is disabled while reading profiles. % Korn Shell 93 - Built-in Commands - set set -f Disables file name generation. % Korn Shell 93 - Built-in Commands - set set -h Each command becomes a tracked alias when first encountered. % Korn Shell 93 - Built-in Commands - set set -k (Obsolete). All variable assignment arguments are placed in the environment for a command, not just those that precede the command name. % Korn Shell 93 - Built-in Commands - set set -m Background jobs will run in a separate process group and a line will print upon completion. The exit status of background jobs is reported in a completion message. On systems with job control, this option is turned on automatically for interactive shells. % Korn Shell 93 - Built-in Commands - set set -n Read commands and check them for syntax errors, but do not execute them. Ignored for interactive shells. % Korn Shell 93 - Built-in Commands - set -o set -o allexport Same as -a. % Korn Shell 93 - Built-in Commands - set -o set -o errexit Same as -e. % Korn Shell 93 - Built-in Commands - set -o set -o bgnice All background jobs are run at a lower priority. This is the default mode. % Korn Shell 93 - Built-in Commands - set -o set -o emacs Puts you in an emacs style in-line editor for command entry. % Korn Shell 93 - Built-in Commands - set -o set -o gmacs Puts you in a gmacs style in-line editor for command entry. % Korn Shell 93 - Built-in Commands - set -o set -o ignoreeof The shell will not exit on end-of-file. The command exit must be used. % Korn Shell 93 - Built-in Commands - set -o set -o keyword Same as -k. % Korn Shell 93 - Built-in Commands - set -o set -o markdirs All directory names resulting from file name generation have a trailing / appended. % Korn Shell 93 - Built-in Commands - set -o set -o monitor Same as -m. % Korn Shell 93 - Built-in Commands - set -o set -o noclobber Same as -C. % Korn Shell 93 - Built-in Commands - set -o set -o noexec Same as -n. % Korn Shell 93 - Built-in Commands - set -o set -o noglob Same as -f. % Korn Shell 93 - Built-in Commands - set -o set -o nolog Do not save function definitions in the history file. % Korn Shell 93 - Built-in Commands - set -o set -o notify Same as -b. % Korn Shell 93 - Built-in Commands - set -o set -o nounset Same as -u. % Korn Shell 93 - Built-in Commands - set -o set -o privileged Same as -p. % Korn Shell 93 - Built-in Commands - set -o set -o verbose Same as -v. % Korn Shell 93 - Built-in Commands - set -o set -o trackall Same as -h. % Korn Shell 93 - Built-in Commands - set -o set -o vi Puts you in insert mode of a vi style in-line editor until you hit the escape character 033. This puts you in control mode. A return sends the line. % Korn Shell 93 - Built-in Commands - set -o set -o viraw Each character is processed as it is typed in vi mode. % Korn Shell 93 - Built-in Commands - set -o set -o xtrace Same as -x. % Korn Shell 93 - Built-in Commands - set -p Disables processing of the $HOME/.profile file and uses the file /etc/suid_profile instead of the ENV file. This mode is on whenever the effective uid (gid) is not equal to the real uid (gid). Turning this off causes the effective uid and gid to be set to the real uid and gid. % Korn Shell 93 - Built-in Commands - set -s Sort the positional parameters lexicographically. % Korn Shell 93 - Built-in Commands - set -t (Obsolete). Exit after reading and executing one command. % Korn Shell 93 - Built-in Commands - set -u Treat unset parameters as an error when substituting. % Korn Shell 93 - Built-in Commands - set -v Print shell input lines as they are read. % Korn Shell 93 - Built-in Commands - set -x Print commands and their arguments as they are executed. % Korn Shell 93 - Built-in Commands - set -- Do not change any of the options; useful in setting $1 to a value beginning with -. If no arguments follow this option then the positional parameters are unset. % Korn Shell 93 - Built-in Commands shift [ n ] The positional parameters from $n+1 ... are renamed $1 ... , default n is 1. The parameter n can be any arithmetic expression that evaluates to a non-negative number less than or equal to $#. % Korn Shell 93 - Built-in Commands sleep seconds Suspends execution for the number of decimal seconds or fractions of a second given by seconds. % Korn Shell 93 - Built-in Commands trap [ -p ] [ action ] [ sig ] ... The "trap" command can intercept and handle signals sent to a running process. % Korn Shell 93 - Built-in Commands true Does nothing, and exits 0. Used with while for infinite loops. % Korn Shell 93 - Built-in Commands typeset -A vname Declares vname to be an associative array. Subscripts are strings rather than arithmetic expressions. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -E vname Declares vname to be a double precision floating point number. If n is non-zero, it defines the number of significant figures that are used when expanding vname. Otherwise, ten significant figures will be used. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -F vname Declares vname to be a double precision floating point number. If n is non-zero, it defines the number of places after the decimal point that are used when expanding vname. Otherwise ten places after the decimal point will be used. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -H This option provides UNIX to host-name file mapping on non-UNIX machines. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -Ln Left justify and remove leading blanks from value. If n is non-zero, it defines the width of the field, otherwise it is determined by the width of the value of first assignment. When the variable is assigned to, it is filled on the right with blanks or truncated, if necessary, to fit into the field. The -R option is turned off. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -Rn Right justify and fill with leading blanks. If n is non-zero, it defines the width of the field, otherwise it is determined by the width of the value of first assignment. The field is left filled with blanks or truncated from the end if the variable is reassigned. The -L option is turned off. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -Zn Right justify and fill with leading zeros if the first non-blank character is a digit and the -L option has not been set. Remove leading zeros if the -L option is also set. If n is non-zero, it defines the width of the field, otherwise it is determined by the width of the value of first assignment. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -f names... The names refer to function names rather than variable names. No assignments can be made and the only other valid options are -t, -u and -x. The -t option turns on execution tracing for this function. The -u option causes this function to be marked undefined. The FPATH variable will be searched to find the function definition when the function is referenced. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -i vname Declares vname to be represented internally as integer. The right hand side of an assignment is evaluated as an arithmetic expression when assigning to an integer. If n is non-zero, it defines the output arithmetic base, otherwise the output base will be ten. The -i attribute cannot be specified along with -R, -L, -Z, or -f. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -l vname All upper-case characters are converted to lower-case. The upper-case option, -u, is turned off. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -n vname Declares vname to be a reference to the variable whose name is defined by the value of variable vname. This is usually used to reference a variable inside a function whose name has been passed as an argument. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -r vname The given vnames are marked readonly and these names cannot be changed by subsequent assignment. % Korn Shell 93 - Built-in Commands typeset -t vname Tags the variables. Tags are user definable and have no special meaning to the shell. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -u vname All lower-case characters are converted to upper-case. The lower-case option, -l, is turned off. Using + rather than - causes this option to be turned off. % Korn Shell 93 - Built-in Commands typeset -x vname The given vnames are marked for automatic export to the environment of subsequently-executed commands. Variables whose names contain a . cannot be exported. Using + rather than - causes these options to be turned off. % Korn Shell 93 - Built-in Commands ulimit [ -HSacdfmnpstv ] [ limit ] Set or display a resource limit. % Korn Shell 93 - Built-in Commands - ulimit ulimit -a Lists all of the current resource limits. % Korn Shell 93 - Built-in Commands - ulimit ulimit -c The number of 512-byte blocks on the size of core dumps. % Korn Shell 93 - Built-in Commands - ulimit ulimit -d The number of K-bytes on the size of the data area. % Korn Shell 93 - Built-in Commands - ulimit ulimit -f The number of 512-byte blocks on files that can be written by the current process or by child processes (files of any size may be read). % Korn Shell 93 - Built-in Commands - ulimit ulimit -m The number of K-bytes on the size of physical memory. % Korn Shell 93 - Built-in Commands - ulimit ulimit -n The number of file descriptors plus 1. % Korn Shell 93 - Built-in Commands - ulimit ulimit -p The number of 512-byte blocks for pipe buffering. % Korn Shell 93 - Built-in Commands - ulimit ulimit -s The number of K-bytes on the size of the stack area. % Korn Shell 93 - Built-in Commands - ulimit ulimit -t The number of CPU seconds to be used by each process. % Korn Shell 93 - Built-in Commands - ulimit ulimit -v The number of K-bytes for virtual memory. % Korn Shell 93 - Built-in Commands umask [ -S ] [ mask ] The user file-creation mask is set to mask (see umask(2)). mask can either be an octal number or a symbolic value as described in chmod(1). If a symbolic value is given, the new umask value is the complement of the result of applying mask to the complement of the previous umask value. If mask is omitted, the current value of the mask is printed. The -S option causes the mode to be printed as a symbolic value. Otherwise, the mask is printed in octal. % Korn Shell 93 - Built-in Commands unalias [ -a ] name ... The aliases given by the list of names are removed from the alias list. The -a option causes all the aliases to be unset. % Korn Shell 93 - Built-in Commands unset [ -fnv ] vname ... The variables given by the list of vnames are unassigned, i.e., their values and attributes are erased. Readonly variables cannot be unset. If the -f option is set, then the names refer to function names. If the -v option is set, then the names refer to variable names. The -f option overrides -v. If -n is set and name is a name reference, then name will be unset rather than the variable that it references. The default is equivalent to -v. Unsetting LINENO, MAILCHECK, OPTARG, OPTIND, RANDOM, SECONDS, TMOUT, and _ removes their special meaning even if they are subsequently assigned to. % Korn Shell 93 - Built-in Commands wait [ job ... ] Wait for the specified job and report its termination status. If job is not given, then all currently active child processes are waited for. The exit status from this command is that of the last process waited for. See Jobs for a description of the format of job. % Korn Shell 93 - Built-in Commands whence [ -afpv ] name ... For each name, indicate how it would be interpreted if used as a command name. The -v option produces a more verbose report. The -f options skips the search for functions. The -p option does a path search for name even if name is an alias, a function, or a reserved word. The -a option is similar to the -v option but causes all interpretations of the given name to be reported.