KSH(1) General Commands Manual KSH(1) (NAME) ksh, rksh, pfksh - KornShell (NOTE) rksh pfksh macOS / Darwin . (SYNOPSIS) ksh [ +-abcefhiknoprstuvxBCDP ] [ -R file ] [ +-o option ] ... [ - ] [ arg ... ] (DESCRIPTION) Ksh . Rksh ksh . Rpfksh ksh ( pfexec(1) ). (Invocation) . (Definitions) (metacharacter) : ; & ( ) | < > new-line space tab (blank) tab space . (identifier) . . vname . . . Vname . (word) . (command) . . (built-in) . . ( (Execution) ) . . (Commands) (simple-command) ( (Variable Assignments) ) ( (Environment) ). . . 0 ( exec(2) ). (value) 0-255 256+signum ( -l kill ). (pipeline) | . pipe(2) . . pipefail . ! 0 0 1 . (list) ; & |& && || ; & |& . ; & |& && || . && || . (;) (&) ( ). |& <& >& p -p read print . && (||) () . . while until if . showme set . (command) . . for vname [ in word ... ] ;do list ;done for vname in word . in word ... for do list 1 ( (Parameter Expansion) ). . for (( [expr1] ; [expr2] ; [expr3] )) ;do list ;done expr1 ( (Arithmetic evaluation) ). expr2 list expr3 . 1 . select vname [ in word ... ] ;do list ;done select ( 2) . in word ... 1 ( (Parameter Expansion) ). PS3 . vname . . vname null . REPLY . break (end-of-file) . REPLY list null PS3 . case word in [ [(]pattern [ | pattern ] ... ) list ;; ] ... esac case word . ( (File Name Generation) ). ;; case . ;& ;; ( ) . if list ;then list [ ;elif list ;then list ] ... [ ;else list ] ;fi if then . elif then . elif else . if else if . while list ;do list ;done until list ;do list ;done while while do . do while until while . ((expression)) . 0 1 . (list) . ( ) . { list;} . ( ) { } ; . [[ expression ]] . expression (Conditional Expressions) . function varname { list ;} varname () { list ;} varname . varname . (discipline function) varname . . { } . function varname . varname() . ( (Functions) .) namespace varname { list ;} list . ( (Name Spaces) .) & [ name [ arg... ] ] & name . name . . time [ pipeline ] pipeline . . TIMEFORMAT . TIMEFORMAT (Shell Variables) . : if then else elif fi case esac for while until do done { } function select time [[ ]] ! (Variable Assignments) typeset enum export readonly (Type) . : varname=word varname[word]=word varname = = word . varname=(assign_list) varname = . varname (unset) . assign_list : word ... . [word]=word ... (Associative Array). typeset -a . assignment ... (Compound Variable). varname varname.name name assignment . varname . varname varname . assignment varname . typeset [options] assignment ... . ; . (unset) . readonly enum typeset . . filename filename. += = . += word . word . . . . (Comments) # . (Aliasing) alias alias . alias (Metacharacters) / = . . . blank ( ) . . alias unalias . (Aliasing) . alias . : autoload='typeset -fu' bool='_Bool' command='command ' compound='typeset -C' fc=hist float='typeset -lE' functions='typeset -f' hash='alias -t --' history='hist -l' integer='typeset -li' nameref='typeset -n' nohup='nohup ' r='hist -s' redirect='command exec' source='command .' stop='kill -s STOP' suspend='kill -s STOP "$$"' type='whence -v' (Tilde Substitution) ~ () . word word ( ). / ( getpwname(3).) ~ . . ~ / $HOME . ~ + - $PWD $OLDPWD . ~ {fd} fd (File Descriptor) . (tilde) ~ ~ : . : ~ . (Command Substitution) ( $(list) ) ( ${ list;} ) (``) . { } { blank ( ) } ; . () ( ). $(cat file) $( . $(n<#) n . (Side Effect) . } . (Arithmetic Substitution) ( $(()) ) . (Process Substitution) <(list) >(list) list /dev/fd ( ) (FIFO) . . > list . < list . paste <(cut -f1 file1) <(cut -f3 file2) | tee >(process1) >(process2) file1 file2 (cut) (paste) process1 process2 . pipe(2) lseek(2) . <(list) < list . (Parameter Expansion) * @ # ? - $ ! . vname . vname . vname . . (Attribute) . typeset . typeset . (Exported) (Environment) . . /(Subscript) . ( ) [ ] . vname=(value ...) set -A vname value ... . 0 4,194,303 . + 1 -1 . -a typeset . . . -A typeset . [ ] . 0 . : vname=value [ vname=value ] ... vname[subscript]=value [ vname[subscript]=value ] ... = . typeset . . . . . foobar ${vname[3][foobar]} . (nameref) . nameref -n typeset . typeset nameref . nameref . . . . nameref nameref nameref . nameref for . nameref . typeset -n var=$1 var . -E -F -X -i vname . (Positional Parameters) set . $0 . $ . ${parameter} ${ } . ( ) . parameter (underscore) . . . parameter . . parameter * @ $1 ( ). vname * @ sub1 .. sub2 sub1 sub2 ( * @) IFS . ${#parameter} parameter * @ . parameter . ${#vname[*]} ${#vname[@]} vname . ${@vname} ( (Type Variables) ) vname . ${$parameter} $parameter . . . ${!vname} vname . vname vname (nameref) . ${!vname[subscript]} subscript * @ sub1 .. sub2 . subscript * vname . 0 (null) . subscript @ (double quotes) . subscript sub1 .. sub2 sub1 sub2 ( ) @ . ${!prefix*} prefix . ${parameter:-word} parameter word . ${parameter:=word} parameter word . (Positional parameters) . ${parameter:?word} parameter word ( ). word . ${parameter:+word} parameter word . word pwd d : print ${d:-$(pwd)} ( : ) parameter . ${parameter:offset:length} ${parameter:offset} parameter ( 0 ) offset length . . offset parameter . (blank) :- . parameter * @ * @ offset length . offset . (associative arrays) . ${parameter#pattern} ${parameter##pattern} ( pattern ) parameter parameter parameter . . parameter @ * @ * . ${parameter%pattern} ${parameter%%pattern} ( pattern ) parameter parameter parameter . . parameter @ * @ * . ${parameter/pattern/string} ${parameter//pattern/string} ${parameter/#pattern/string} ${parameter/%pattern/string} parameter pattern string . \n string parameter n- . pattern . pattern string . . string pattern / string . parameter @ * @ * . string word . ${parameter^pattern} ${parameter^^pattern} ${parameter,pattern} ${parameter,,pattern} (Case modification). . pattern . ^ pattern . , . ^^ ,, . ^ , . ? . parameter @ * @ * . : # . - set. ? . $ (PID) . _ _ (environment) . . (asynchronous) . MAIL . (compound variable) (type) _ . (discipline function) _ . _ ( Type Variables ). ! (PID) (pool) bg . pool.number pool number . .sh.command (trap) DEBUG . .sh.edchar ( ESC 033 ) KEYBD ( Key Bindings ). ( ) . .sh.edcol KEYBD .sh.edmode KEYBD vi ESC ( Vi Editing Mode ). .sh.edmode KEYBD (null) . .sh.edtext KEYBD KEYBD . .sh.file . .sh.fun . .sh.level . DEBUG (context) . .sh.lineno DEBUG . .sh.match # % / . 0- i- i- . // 0 . .sh.match (unset) . .sh.math ( Arithmetic evaluation ) . .sh.name . .sh.op_astbin (bound) . /opt/ast/bin . /bin /bin /usr/bin . SH_OPTIONS . .sh.pgrp (process group) . .sh.pwdfd (file descriptor) . .sh.sig siginfo_t ( siginfo(2) ). .sh.subscript . .sh.subshell . .sh.value set append . .sh.value .sh.value (long double precision) . .sh.value . .sh.version . KSH_VERSION (name reference) .sh.version. LINENO . OLDPWD cd . OPTARG getopts . OPTIND getopts . PPID . PWD cd . RANDOM 0 32767 . RANDOM . REPLY select read . SECONDS . . SHLVL (export) . SHLVL 1 . : CDPATH cd. COLUMNS select . EDITOR VISUAL VISUAL ( set ) . ENV ( Invocation ). alias function . $HOME/.kshrc . /etc/ksh.kshrc ENV /./ ././ . FCEDIT hist. HISTEDIT FCEDIT . FIGNORE . FPATH . -u . . PATH . : : . HISTCMD . HISTEDIT hist. HISTFILE ( Command Re-entry ). HISTSIZE . 512 . HOME ( ) cd. IFS (Internal field separators) space tab new-line read . IFS "$*" ( Quoting ). IFS isspace IFS isspace . IFS isspace . isspace IFS isspace IFS tab tab (null) . JOBMAX . . LANG (locale category) LC_ LANG . LC_ALL LANG LC_ (override) . LC_COLLATE (collation) . LC_CTYPE . ( File Name Generation ). LC_NUMERIC . LINES select . LINES . MAIL MAILPATH . MAILCHECK ( ) MAILPATH MAIL . 600 . (prompt) . MAILPATH ( : ) . MAILCHECK . ? . $_ . you have mail in $_ . PATH ( Execution ). PATH rksh ( .profile). PS1 (primary prompt string) ``$ '' . ! command ( Command Re-entry ). ! ! . PS2 ``> ''. PS3 select ``#? ''. PS4 (execution trace) . PS4 ``+ '' . PS4 ``+ '' . SH_OPTIONS name=value . name .sh.opt_name value . astbin . SHELL shell . (basename) rsh rksh krsh (restricted) . pfsh pfksh ( pfexec(1) ). TIMEFORMAT (pipelines) time . % . : %% %. %[p][l]R . %[p][l]U CPU (user mode). %[p][l]S CPU (system mode). %[p][l]C CPU . %P CPU ( ) C / R. . p ( ) . 0 . p 3 3 . p 3 . l HHhMMmSS.FFs. p . . $'\nreal\t%2lR\nuser\t%2lU\nsys%2lS' . . TMOUT TMOUT (timeout) read . select TMOUT . . ( ). VISUAL *[Vv][Ii]* vi ( set ) . *gmacs* gmacs . *macs* emacs . VISUAL EDITOR . PATH PS1 PS2 PS3 PS4 MAILCHECK FCEDIT TMOUT IFS HOME SHELL ENV MAIL ( HOME login(1) ). MAIL SHELL login(1) ..SS " (Field Splitting)" ( IFS) . ("" '') . ( ) . braceexpand (-B) IFS {*,*} {l1..l2} {n1..n2} {n1..n2% fmt} {n1..n2 ..n3} {n1..n2 ..n3%fmt} * l1l2 n1n2n3 fmt printf . { } { } . . { , , , , } . * { } . { } * . l1 l2 C . l1 l2 . n1 n2 n1 n3 . n3 n3 1 n1<=n2 -1 . %fmt fmt cdiouxX . {a,z}{1..5..3%02d}{b..c}x : a01bx a01cx a04bx a04cx z01bx z01cx z04bx z4cx. (File Name Generation) * ? ( [ -f . . () . ~(N) . FIGNORE FIGNORE . . .. . FIGNORE . . . / . . * . globstar * . / . ? . [...] . - ( ) . [ ! ^ . - . [ ] [:class:] class ANSI-C : ( word alnum _ .) alnum alpha blank cntrl digit graph lower print punct space upper word xdigit [ ] [=c=] ( ) c . [ ] [.symbol.] symbol . (pattern-list) & | . & | . : ?(pattern-list) . *(pattern-list) . +(pattern-list) . {n}(pattern-list) n . {m,n}(pattern-list) m n . m 0 . n m . @(pattern-list) . !(pattern-list) . . . - ( pattern-list . pattern-list \ . ANSI-C . : \d digit . \D digit . \s space . \S space . \w word . \W word . %(pattern-pair(s)) . pattern-pair & | . pattern-pair . pattern-pair () . pattern-pair : D . E (escape) . L . Q . %({}Q"E\) { } { } () \ . {} C . ( . \n n \n n- . ~(options:pattern-list) options :pattern-list . . :pattern-list F G N V . options : + . . - . E (Extended Regular Expression) egrep(1) . F fgrep(1) . G (Basic Regular Expression) grep(1) . K . . N . . X xgrep(1) . P perl(1) . . V System V . i . g ( greedy). . l (anchor) . K . r (anchor) . K . options :pattern-list pattern-list . ~(...) ~(...) . (Quoting) (metacharacters) ( (Definitions) ) . \ ( ). \new-line ( ) . () ('') $ . . $ ANSI-C : \0 . \E escape ( 033) \e escape ( 033) \cx -x . \C[.name.] name . () ("") \ \ ` " $ . $ "C" "POSIX" . $* $@ . "$*" "$1d$2d..." d IFS "$@" "$1" "$2" .... (grave quote) (``) \ \ ` $ . \ " . . . (Arithmetic Evaluation) shift let . (double precision) (long double) . ANSI-C . Nan Inf " " (not a number) . ANSI-C (cast) . [base#]n base n . @ _ . . C . C . ** . . (long integer) C . . . C : abs acos acosh asin asinh atan atan2 atanh cbrt ceil copysign cos cosh erf erfc exp exp2 expm1 fabs fdim finite floor fma fmax fmin fmod hypot ilogb int isfinite sinf isnan isnormal issubnormal issubordered iszero j0 j1 jn lgamma log log10 log2 logb nearbyint pow remainder rint round scanb signbit sin sinh sqrt tan tanh tgamma trunc y0 y1 yn function name : function .sh.math.name ident ... { list ;} name . ident ident (name reference) . ident (long double) . .sh.value . C . -E [n] -F [n] -X [n] typeset . -E . n . -F . -X %a ISO C-99 . n ( ) . -i [n] typeset . n . . -E -F -X -i . ( ) . .MIN .MAX .DIG . .INT_MAX .INT_MIN . .EPSILON . MAX_10_EXP . typeset-lE : NaN (Not a number). . Inf (Infinity). . E PI 1_PI 1.0/PI. 2_PI 2.0/PI. PI_2 PI/2.0 PI_4 PI/4.0. SQRTPI sqrt(PI). SQRT2 sqrt(2.0). SQRT1_2 sqrt(1./2.) LOGE log(E) LOG10E log10(E) LN2 log(2.0) LOG2E log2(E) (Array Sorting) -s set ( << >> ). (locale) . -K set . : n / r . -K :n :r . (Prompting) PS1 . ! . !! ! . ( PS2) . (Conditional Expressions) [[ . [[ ]] . : string string . -a file -e . . -b file file . -c file file . -d file file . -e file file . -f file file . -g file file setgid . -k file file (sticky bit) . -n string string . -o ?option option . -o option option . -p file file fifo (pipe) . -r file file . -s file file . -t fildes fildes . -u file file setuid . -v name name . -w file file . -x file file . file . -z string string . -L file file . -h file file . -N file file . -O file file . -G file file . -R name name (name reference) . -S file file . file1 -nt file2 file1 file2 file1 file2 . file1 -ot file2 file2 file1 file1 file2 . file1 -ef file2 file1 file2 . string == pattern string pattern . pattern . .sh.match . string = pattern == . string != pattern string pattern . string pattern .sh.match . string =~ ere string ~(E)ere ere . string1 < string2 string1 (locale) string2 . string1 > string2 string1 (locale) string2 . : exp1 -eq exp2 exp1 exp2 . exp1 -ne exp2 exp1 exp2 . exp1 -lt exp2 exp1 exp2 . exp1 -gt exp2 exp1 exp2 . exp1 -le exp2 exp1 exp2 . exp1 -ge exp2 exp1 exp2 . file /dev/fd/n n n . : (expression) expression . . ! expression expression . expression1 && expression2 expression1 expression2 . expression1 || expression2 expression1 expression2 . / (Input/Output) . command . word digit . . . file /dev/sctp/host/port /dev/tcp/host/port /dev/udp/host/port host port tcp sctp udp . . word ( 0). >word word ( 1). . noclobber ( ). >|word > noclobber . >;word . word . >;word exec(2) . >>word word . ( ) . <>word word . <>;word <>word word . <>;word exec(2) . <<[-]word word . word . here-document . word \new-line \ \ $ ` . - << word . # << word . (tab stop) . << here-document word here-document . <&digit digit ( dup(2)). >&digit. <&digit- digit . >&digit-. <&- . >&-. <&p (co-process) . >&p (co-process) . <#((expr)) expr 0 . CUR EOF expr . >#((offset)) <# 1 . <#pattern pattern. <##pattern <# . ( 0 1 ). >&- ># <# {varname} > 10 varname . >&- ># <# {varname} varname . : ... 2>&1 2 1 exec {n} file n . . ( , ) . : ... 1>fname 2>&1 1 fname . 2 1 ( fname) . 2 ( 1 ) 1 fname . & (job control) /dev/null . / . (Environment) ( environ(7)) - . (identifiers) . . export . . export typeset -x . - export typeset -x . simple-command . identifier=value . : TERM=450 cmd args (export TERM; TERM=450; cmd args) ( cmd - (dagger) ). -k . a=b c c : echo a=b c set -k echo a=b c . . (Functions) : name() function name (Commands) . . . . ( (Execution) .) function name . (traps) . . EXIT . . typeset . . . name() function name . . . return . -f +f typeset . -f . -f unset (undefined) . . FPATH . ENV . (Discipline Functions) . get set append unset . C builtin . get . .sh.value . set . append . .sh.value .sh.value . .sh.value (unset) . unset . . .sh.name .sh.subscript (subscript) .sh.value set . _ ( ) . set .sh.value . ${var.name} name ${ var.name;} . (Name Spaces) list namespace identifier . . name .identifier.name . list namespace . . list namespace namespace identifier . . . .sh sh . (Type Variables) (Typed variables) . enum -T typeset . -T typeset -T . (instance) . create . . . <*><*> . . --man -- getopts . -r -a -A -h -S typeset . . -S . -S . . . -r . . (readonly) . unset -r . unset . _ . . . typeset -T . (Jobs) monitor set (job) (pipeline) . jobs . & : [1] 1234 ( ) . UNIX . ^Z (control-Z) STOP . (`Stopped`) (prompt) . bg fg . ^Z (interrupt) . . stty tostop . tty . (job pool) list & . . : %number . pool pool. pool.number number pool. %string string . %?string string . %% . %+ %%. %- . . . (prompt) . . notify set . monitor CHLD . `You have stopped(running) jobs.` . jobs . . (login shell) HUP HUP disown ( ) . (Signals) INT QUIT & monitor . ( trap ). (Execution) . (Special Built-in Commands) . . function . . function return . function name EXIT . function . function . PATH FPATH . (:) . getconf PATH . . / . PATH FPATH . FPATH . . FPATH . .paths . FPATH=path path FPATH . path / . .paths PLUGIN_LIB=libname [ : libname ] ... . libname builtin -f . .paths . . a.out . (spawn) . (non-exported) . setuid setgid (agent) . .paths name=value name value . value . name . (sub-shell) . (Command Re-entry) HISTSIZE ( ) (history) . HISTFILE $HOME/.sh_history . HISTFILE . hist . . . hist HISTEDIT . HISTEDIT FCEDIT . FCEDIT /bin/ed . () . -s ( -) . old=new . r 'hist -s' `r bad=good c' c bad good . (In-line Editing Options) new-line ( <> <>) . emacs gmacs vi . set . VISUAL EDITOR . <> (carriage return) (line feed) (<< >>) . multiline . COLUMNS ( ) . (prompt) . . . > (<, *) ( ) . . ^ . . ; | & ( ~ / (alias) PATH . . * . . (command name listing) (file name listing) . (command name completion) (file name completion) . / . . / . . tab tab . tab . (Key Bindings) (trap) KEYBD . ( ESC ) . .sh.edchar . .sh.edchar . .sh.edcol . .sh.edmode vi ( ) ESC (null) . ${.sh.editmode} .sh.edchar . . (Emacs Editing Mode) emacs gmacs . ^T . . (escape sequences) . (^) . ^F F . <> () <> . <> . ( ^? DEL delete .) M- . M-f ( f) ESC ( 033) <> . (M-F ESC <> <> .) ( ) . <> <> . ^F (). M-[C (). M-f . ( emacs .) ^B (). M-[D (). M-b . ^A . M-[H . ^E . M-[Y . ^]char char . M-^]char char . ^X^X (mark). erase ( stty(1) ^H # .) . lnext ( stty(1) ^V .) ( ) . ^D . M-d . M-^H (-backspace) . M-h . M-^? (-DEL) ( ^? (DEL ) ). ^T emacs. gmacs. ^C . M-c (Capitalize). M-l (lower case). ^K . . . ^W (kill to mark). M-p (stack). kill ( kill stty ^G @.) . kill kill ( ). ^Y ( / Yank). ^L (Line feed) . M-^L . ^@ ( Null) (Set mark). M-space ( space) . ^J ( / New line) . ^M ( / Return) . eof (End-of-file) ^D . ^P . ^P . . M-[A ^R string . ^P . M-< () . M-> () . ^N . ^N . M-[B ^N. ^Rstring string. . string <> <> . ^ string . string string . . ^O - . M-digits (Escape) . : ^F ^B erase ^C ^D ^K ^R ^P ^N ^] M-. M-^] M-_ M-= M-b M-c M-d M-f M-h M-l M-^H. M-letter (Soft-key) - _letter . letter . M-[letter - __letter . (Function keys) . M-. . . M-_ M-.. M-* ( ) . . M-ESC . ^I tab . M-= . space tab . M-= . . . ^U . \ (Escape) . erase kill (interrupt ^?) \ . \ ( ) . M-^V . M-# # # . . # # # . Vi (Vi Editing Mode) . input () . ESC (033) control () . count ( ) . vi (canonical processing) (prompt) (echo) . ESC . (type-ahead) (raw mode) . viraw . . (Input Edit Commands) . erase ( stty ^H #.) . ^W . eof ignoreeof . . lnext ( stty(1) ^V .) ( ) . \ (Escape) erase kill . ^I tab . = . space tab . (Motion Edit Commands) . [count]l (). [count][C (). [count]w - . [count]W . [count]e . [count]E . [count]h (). [count][D (). [count]b . [count]B . [count]| count. [count]fc c . [count]Fc c . [count]tc f h. [count]Tc F l. [count]; f F t T count . [count], count . 0 . ^ . [H . $ . [Y . % ( ) { } [ ]. . (Search Edit Commands) . [count]k . k . [count]- k. [count][A / string^ . k . [count]j . j . [count]+ j. [count][B j. [count]G count . . /string string. String <> <> . ^ string . string . ?string / . n / ?. N / ? . (Text Modification Edit Commands) . a . A . $a. [count]cmotion c[count]motion motion . motion c . C . c$. S cc. [count]s . D . d$. [count]dmotion d[count]motion motion . motion d . i . I . 0i. [count]P . [count]p . R (overlay). [count]rc count c . [count]x . [count]X . [count]. . [count]~ / (case) count . [count]_ count . count . * * . . . \ . (Other Edit Commands) . [count]ymotion y[count]motion (Yank) motion . . yy . Y . y$. u (Undo) . U . [count]v hist -e ${VISUAL:-${EDITOR:-vi}} count . count . ^L (Line feed) . . ^J ( - New line) . ^M ( - Return) . # # # # . # . . [count]= count . count . . @letter (alias) _letter . ^V . (Programmable Completion) tab . tab number tab . tab . complete . (Built-in Commands) . / . . : true false echo newgrp login -- . --man -? usage ( ) . <*> : 1. . 2. / . 3. . 4. . 5. <*><*> . = . declaration () . <*> : [ arg ... ] . <*> . name [ arg ... ] name function name ( name() .) name . PATH . arg . . . . <*><*> alias [ -ptx ] [ name[ =value ] ] ... alias name=value . -p alias . alias ( ) name value . value . -t (tracked aliases) . name . PATH . -t name value . -x . name name . bg [ job... ] (job control) . job () . job . job Jobs () . <*> break [ n ] for while until select . n n . builtin [ -dsp ] [ -f file ] [ name ... ] name -f . -s . name (basename) . (entry point) b_ . (path search) . .paths .paths . (prototype) ISO C/C++ mycommand b_mycommand(int argc, char *argv[], void *context) argv argc context Shell_t . . -d . -f . / . builtin . builtin . . lib_init() 0 . -p builtin . cd [ -LP ] [ arg ] cd [ -LP ] old new . arg . arg - . HOME arg . PWD . CDPATH arg . (:) . ( ) . (null) . arg / . arg . cd new old PWD . . -L . -P . -L -P . cd rksh. . command [ -pvxV ] name [ arg ... ] -v -V command name arg . -p PATH . name . name . ( redirect='command exec' .) -x ( E2BIG) name . . . -v command whence . -V command whence -v . <*> continue [ n ] for while until select. n n- . disown [ job... ] (login shell) HUP job () job . echo [ -n -e ] [ arg ... ] echo . -n . -e (escape sequences) . <*><*> enum [ -i ] type[=(value ... ] type value . =(value ...) type . -i . . . .name ( name ) name . _Bool true false . bool _Bool . <*> eval [ arg ... ] () . <*> exec [ -c ] [ -a name ] [ arg ... ] arg . -c exec . -a name arg argv[0] . / . arg / . . <*> exit [ n ] n . . n . (EOF) ignoreeof ( set ). <*><*> export [ -p ] [ name[=value] ] ... name (export) . export typeset -x export . -p export . name environment () . false . until . fg [ job... ] . job () . . job Jobs . getopts [ -a name ] optstring vname [ arg ... ] arg . arg . + - . + - -- . + optstring + . optstring getopts . : . . -? getopts (usage) . -a $0 . getopts vname . arg + + . arg OPTIND . OPTARG . : optstring getopts OPTARG vname ? : . getopts . . : + - ? [ ] . # . hist [ -e ename ] [ -nlr ] [ first [ last ] ] hist -s [ old=new ] [ command ] first last HISTSIZE . first last . . . -l . ename . ename HISTEDIT . HISTEDIT FCEDIT ( /bin/ed) . () . last first . first -16 . -r -n . command first . old=new . jobs [ -lnp ] [ job ... ] job . -l (PID) . -n . -p (process group) . job Jobs . kill [ -s signame ] [ -q n ] job ... kill [ -n signum ] [ -q n ] job ... kill -Ll [ sig ... ] TERM () . -n -s ( <> SIGCLD CHLD ). n s - . TERM () HUP ( ) CONT () . job (PID) . job Jobs . kill -l kill -L sig . -l . -L . sig . sig sig . sigqueue(2) -q n . job . sigqueue(2) n . EAGAIN . let arg ... arg . let () 0 set letoctal . (Arithmetic Evaluation) . . <*> newgrp [ arg ... ] exec /bin/newgrp arg ... . print [ -CRenprsv ] [ -u unit] [ -f format ] [ arg ... ] - -- arg . -f printf . e n r R . -C -R -r -v (escape) : \a / ( 07). \b ( 010). \c print . \f / ( 014). \n ( 012). \r ( 015). \t ( 011). \v ( 013). \E /Escape ( 033). \\ \. \0x x. -R -n . -e . . -r . -p (pipe) |& . -v arg %B printf . -C arg %#B printf . -s . -u unit . . -n . printf [ -v varname ] format [ arg ... ] arg ANSI-C format . format . -v varname . : %b %b %s arg print . %B %B . # . -b . %H %H %s HTML XML arg (entity) . # URI . %P %P %s arg . %R %R %s arg . %q %q %s . q # .csv . %(date-format)T %(date-format)T / / date-format date(1) . touch(1) . %Z %Z 0 . %d %d . . # base# . # # %d 1000 : k M G T P E %i 1024 : Ki Mi Gi Ti Pi Ei. = = . L L %c %s . , , %d %f (, C) . pwd [ -LP ] [ -f fd ] . -L . -P . -L -P . -f fd . read [ -AaCSprsv ] [ -d delim] [ -n n] [ -N n] [ -m method] [ -t timeout] [ -u unit] [ vname?prompt ] [ vname ... ] . IFS . \ . -d delim . -n n . -N n (EOF) -t (timeout) . (raw) -r \ . vname vname vname . vname -n -N . -v vname . -A vname (unset) vname . -a -A . -m method . json ksh . -C vname . . -m ksh . -S .csv (double quotes) . -p |& . -s . -u unit . exec . n 0 . -t (timeout) . vname REPLY vname . -p . ? prompt . 0 read . <*><*> readonly [ -p ] [ vname[=value] ] ... vname (readonly) . -p readonly . vname . . <*> return [ n ] . n . . n . return . exit . <*> set [ +-BCGabefhkmnoprstuvx ] [ +-o [ option ] ] ... [ +-A vname ] [ -K keylist ] [ arg ... ] : -A . arg vname arg . +A vname . -B (brace group expansion). . -C (truncate) > . O_EXCL . >| . -G ** . / . -H ! csh(1). -K -s . ( keylist << >> .) -a (export) . -b . -e || && if while until ! (trap) ERR . . -f . -h (tracked alias) . -k (). . -m . . (job control) . -n . . -o : allexport -a. bgnice . . braceexpand -B. emacs emacs . errexit -e. globstar -G. gmacs gmacs . histexpand -H. ignoreeof (EOF) . exit . keyword -k. letoctal let 0 . markdirs / . monitor -m. multiline . . noclobber -C. noexec -n. noglob -f. nolog . notify -b. nounset -u. pipefail . privileged -p. showme (;) xtrace . ; . trackall -h. verbose -v. vi vi 033 . . Return . viraw vi . . . xtrace -x. . -p $HOME/.profile /etc/suid_profile ENV . uid ( gid) uid ( gid) . uid gid uid gid . -r (restricted shell) . . -s . -A . -t (). . -u . -v . -x . -- $1 - . (unset) . arg - -x -v arg . + - . . $- . -A $1 $2 ... . . <*> shift [ n ] $n+1 ... $1 ... n . n $# . sleep seconds seconds . smhd . / . times CPU . <*> trap [ -alp ] [ action ] [ sig ] ... -p (action) . () sig action eval . -a action . sig . . . action sig action - () sig . action . sig ERR action . sig DEBUG action . .sh.command action . 2 . 255 () . sig 0 EXIT trap function name action . trap action . sig KEYBD action emacs gmacs vi . trap . exit return . -l . true . while . <*><*> typeset [ +-ACHSfblmnprstux ] [ +-EFLRXZi[n] ] [ +-M [ mapname ] ] [ -T [ tname=(assign_list) ] ] [ -h str ] [ -a [type] ] [ vname[=value ] ] ... . function name vname . : -A vname . . -C vname . value vname . vname . -a vname . type enum . -E vname () . n vname . -F vname . n vname . -H . -L value. n . . -R . -M mapping wctrans(3) tolower toupper . mapping . mapping . -R . n . . -L . -S assign_list . function function static . . -T tname tname assign_list tname . . -X vname %a ISO-C99 . n vname . . -Z -L . -L . n . -f . -S -t -u -x . -S (static) . . . . -t . -u . FPATH . -f . +f ( ) . typeset -f .sh.math.name name . -b . . base64 . -Z -Z . base64 . %B printf base64 . -h (man page) . . -f . -i vname . . n . -l -i -E -F (long) (long double) . . -u . -M tolower . -m . vname . . . -n vname vname . . . -p vname . +p . -r vname . -s -i -E -F (short) (float) . -t () . . -u -i . . -l . -M toupper . -x vname (environment) . . . -i -R -L -Z -f . + - . vname vname ( ) . ( + - .) -p typeset . -p . vname . ulimit [ -HSacdfmnpstv ] [ limit ] . . . limit . limit unlimited. -H -S (hard) (soft) . . . H S . limit . H . . -a . -c core dump. -d (data area). -f ( ). -m . -n (file descriptors) . -p (pipe). -s (stack area). -t (CPU) . -v . -f . umask [ -pS ] [ mask ] mask (: umask(2)). mask () chmod(1) . umask mask umask . mask . -S . -p . <*> unalias [ -a ] name ... name . -a . <*>unset [ -fnv ] vname ... vname . . . -f . -v . -f -v . -n name name . -v . LINENO MAILCHECK OPTARG OPTIND RANDOM SECONDS TMOUT _ . wait [ job ... ] job (/) . job . job . job Jobs . whence [ -afpv ] name ... name . -v . -f . -p (PATH) name name . -p -v . -a -v . (Invocation) exec(2) ($0) - (login) /etc/profile $HOME/.profile ( ) . -l . ENV ( ) . -s arg arg . arg / arg . arg setuid setgid . arg . : -D $ . (locale) C POSIX . . -E ENV $HOME/.kshrc . -c -c arg . 0 . -s -s . (Special Commands) . -i -i ( tcgetattr(2) ) (interactive) . TERM ( kill 0 ) INTR ( wait ). QUIT . -r -r (restricted shell) . -P -P -o profile ( pfexec(1) ). -R filename -R filename . filename . . set . - . Rksh (Rksh Only) Rksh . rksh ksh, : restricted. ( cd(1) ) SHELL ENV FPATH PATH / (> >| <> >>). . command -p . .profile ENV . (shell procedure) rksh ksh . . .profile ( ) . ( /usr/rbin) rksh. . (EXIT STATUS) . (subshell) . ( exit ). . ([]) . (FILES) /etc/profile (login) . $HOME/.profile /etc/profile . $HOME/.kshrc ENV . /etc/suid_profile . /dev/null NULL () (SEE ALSO) cat(1), cd(1), chmod(1), cut(1), date(1), egrep(1), echo(1), emacs(1), env(1), fgrep(1), gmacs(1), grep(1), newgrp(1), pfexec(1), stty(1), test(1), touch(1), umask(1), vi(1), dup(2), exec(2), fork(2), getpwnam(3), ioctl(2), lseek(2), paste(1), pathconf(2), pipe(2), sigsetinfo(2), sysconf(2), umask(2), ulimit(2), wait(2), wctrans(3), rand(3), a.out(5), profile(5), environ(7). Morris I. Bolsky and David G. Korn, The New KornShell Command and Programming Language, Prentice Hall, 1995. POSIX - Part 2: Shell and Utilities, IEEE Std 1003.2-1992, ISO/IEC 9945-2, IEEE, 1993. (CAVEATS) (exec) . -t alias . ^ | . hist (compound command) . . file . alias unalias . (Traps) (job) . CHLD . (locales) . KSH(1)