mirror of
https://github.com/flokoe/bash-hackers-wiki.git
synced 2024-11-25 07:43:42 +01:00
missed some table formatting in last commit.
This commit is contained in:
parent
681cee9723
commit
50aeb31ff8
@ -26,11 +26,11 @@ is given or the shell is configured to do so (see the `-P` option of
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
-------- ----------------------------------------------------
|
||||
`-L` Follow symbolic links (default)
|
||||
`-P` Do not follow symbolic links
|
||||
`-@` Browse a file's extended attributed, if supported
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-L`|Follow symbolic links (default)|
|
||||
|`-P`|Do not follow symbolic links|
|
||||
|`-@`|Browse a file's extended attributed, if supported|
|
||||
|
||||
### Exit status
|
||||
|
||||
|
@ -30,54 +30,36 @@ tagged as obsolete.
|
||||
Below, `[-+]X` indicates an attribute, use `-X` to set the attribute,
|
||||
`+X` to remove it.
|
||||
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
Option Description
|
||||
--------- ------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
`[-+]a` make NAMEs indexed arrays (removing with `+a` is valid syntax, but leads to an error message)
|
||||
|
||||
`[-+]A` make NAMEs associative arrays
|
||||
|
||||
`[-+]c` **Undocumented** convert NAMEs to "capcase" on assignment (makes the first letter upper-case and the rest lower). Requires Bash built with `-DCASEMOD_CAPCASE`
|
||||
|
||||
`-f` restrict action or display to function names and definitions (removing with `+f` is valid syntax, but leads to an error message)
|
||||
|
||||
`-F` restrict display to function names only (plus line number and source file when debugging)
|
||||
|
||||
`-g` create global variables when used in a shell function; otherwise ignored (by default, `declare` declares local scope variables when used in shell functions)
|
||||
|
||||
`[-+]i` make NAMEs have the "integer" attribute
|
||||
|
||||
`[-+]l` convert NAMEs to lower case on assignment (makes sure the variable contains only lower case letters)
|
||||
|
||||
`[-+]n` make NAME a reference to the variable named by its value. Introduced in Bash 4.3-alpha.
|
||||
''`${!NAME}`'' reveals the reference variable name, VALUE.
|
||||
Use `unset -n NAME` to unset the variable. (`unset -v NAME` unsets the VALUE variable.)
|
||||
Use `[[ -R NAME ]]` to test if NAME has been set to a VALUE, another variable's name.
|
||||
|
||||
`-p` display the attributes and value of each NAME
|
||||
|
||||
`[-+]r` make NAMEs readonly (removing with `+r` is valid syntax, but not possible)
|
||||
|
||||
`[-+]t` make NAMEs have the "trace" attribute (effective only for functions)
|
||||
|
||||
`[-+]u` convert NAMEs to upper case on assignment (makes sure the variable contains only upper case letters)
|
||||
|
||||
`[-+]x` make NAMEs exported
|
||||
----------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`[-+]a`|make NAMEs indexed arrays (removing with `+a` is valid syntax, but leads to an error message)|
|
||||
|`[-+]A`|make NAMEs associative arrays|
|
||||
|`[-+]c`|**Undocumented** convert NAMEs to "capcase" on assignment (makes the first letter upper-case and the rest lower). Requires Bash built with `-DCASEMOD_CAPCASE`|
|
||||
|`-f`|restrict action or display to function names and definitions (removing with `+f` is valid syntax, but leads to an error message)|
|
||||
|`-F`|restrict display to function names only (plus line number and source file when debugging)|
|
||||
|`-g`|create global variables when used in a shell function; otherwise ignored (by default, `declare` declares local scope variables when used in shell functions)|
|
||||
|`[-+]i`|make NAMEs have the "integer" attribute|
|
||||
|`[-+]l`|convert NAMEs to lower case on assignment (makes sure the variable contains only lower case letters)|
|
||||
|`[-+]n`|make NAME a reference to the variable named by its value. Introduced in Bash 4.3-alpha. ''`${!NAME}`'' reveals the reference variable name, VALUE. Use `unset -n NAME` to unset the variable. (`unset -v NAME` unsets the VALUE variable.) Use `[[ -R NAME ]]` to test if NAME has been set to a VALUE, another variable's name.|
|
||||
|`-p`|display the attributes and value of each NAME|
|
||||
|`[-+]r`|make NAMEs readonly (removing with `+r` is valid syntax, but not possible)|
|
||||
|`[-+]t`|make NAMEs have the "trace" attribute (effective only for functions)|
|
||||
|`[-+]u`|convert NAMEs to upper case on assignment (makes sure the variable contains only upper case letters)|
|
||||
|`[-+]x`|make NAMEs exported|
|
||||
|
||||
### Return status
|
||||
|
||||
Status Reason
|
||||
-------- ----------------------------------------------------------------------------------------
|
||||
0 no error
|
||||
!= 0 invalid option
|
||||
!= 0 invalid variable name given
|
||||
!= 0 attempt to **define** a function using `-f`
|
||||
!= 0 assignment to a readonly variable
|
||||
!= 0 removing the readonly-attribute from a readonly variable
|
||||
!= 0 assignment to an array variable without the compound assignment syntax (`array=(...)`)
|
||||
!= 0 attempt to use `+a` to "destroy" an array
|
||||
!= 0 attemt to display a non-existent function with `-f`
|
||||
|Status|Reason|
|
||||
|------|------|
|
||||
|0|no error|
|
||||
|!= 0|invalid option|
|
||||
|!= 0|invalid variable name given|
|
||||
|!= 0|attempt to **define** a function using `-f`|
|
||||
|!= 0|assignment to a readonly variable|
|
||||
|!= 0|removing the readonly-attribute from a readonly variable|
|
||||
|!= 0|assignment to an array variable without the compound assignment syntax (`array=(...)`)|
|
||||
|!= 0|attempt to use `+a` to "destroy" an array|
|
||||
|!= 0|attemt to display a non-existent function with `-f`|
|
||||
|
||||
## Notes
|
||||
|
||||
|
@ -16,31 +16,31 @@ if given.
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
-------- ----------------------------------------------------------------------------------------------------------------
|
||||
`-n` The trailing newline is suppressed.
|
||||
`-e` Interpretation of the following backslash-escaped characters (below) is enabled.
|
||||
`-E` Disables the interpretation of these escape characters, even on systems where they are interpreted by default.
|
||||
Option|Description|
|
||||
------|-----------|
|
||||
|`-n`|The trailing newline is suppressed.|
|
||||
|`-e`|Interpretation of the following backslash-escaped characters (below) is enabled.|
|
||||
|`-E`|Disables the interpretation of these escape characters, even on systems where they are interpreted by default.|
|
||||
|
||||
### Escape sequences
|
||||
|
||||
Escape Description
|
||||
-------------- ---------------------------------------------------------------------------------------------------------------
|
||||
`\a` alert (bell)
|
||||
`\b` backspace
|
||||
`\c` suppress further output
|
||||
`\e`
|
||||
`\E` an escape character
|
||||
`\f` form feed
|
||||
`\n` new line
|
||||
`\r` carriage return
|
||||
`\t` horizontal tab
|
||||
`\v` vertical tab
|
||||
`\\` backslash
|
||||
`\0nnn` the eight-bit character whose value is the octal value nnn (zero to three octal digits)
|
||||
`\xHH` the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)
|
||||
`\uHHHH` the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)
|
||||
`\UHHHHHHHH` the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)
|
||||
|Escape|Description|
|
||||
|------|-----------|
|
||||
|`\a`|alert (bell)|
|
||||
|`\b`|backspace|
|
||||
|`\c`|suppress further output|
|
||||
|`\e`|
|
||||
|`\E`|an escape character|
|
||||
|`\f`|form feed|
|
||||
|`\n`|new line|
|
||||
|`\r`|carriage return|
|
||||
|`\t`|horizontal tab|
|
||||
|`\v`|vertical tab|
|
||||
|`\\`|backslash|
|
||||
|`\0nnn`|the eight-bit character whose value is the octal value nnn (zero to three octal digits)|
|
||||
|`\xHH`|the eight-bit character whose value is the hexadecimal value HH (one or two hex digits)|
|
||||
|`\uHHHH`|the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHH (one to four hex digits)|
|
||||
|`\UHHHHHHHH`|the Unicode (ISO/IEC 10646) character whose value is the hexadecimal value HHHHHHHH (one to eight hex digits)|
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -17,11 +17,11 @@ shell without executing any program.
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
----------- ----------------------------------------------------------------------------------------------------------------------
|
||||
`-a NAME` Passes `NAME` as zeroth argument for the program to be executed
|
||||
`-c` Execute the program with an empty (cleared) environment
|
||||
`-l` Prepends a dash (`-`) to the zeroth argument of the program to be executed, similar to what the `login` program does
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-a NAME`|Passes `NAME` as zeroth argument for the program to be executed|
|
||||
|`-c`|Execute the program with an empty (cleared) environment|
|
||||
|`-l`|Prepends a dash (`-`) to the zeroth argument of the program to be executed, similar to what the `login` program does|
|
||||
|
||||
### Exit status
|
||||
|
||||
|
@ -25,9 +25,9 @@ There are no options.
|
||||
Naturally, you can't ask for the exit status from within the shell that
|
||||
executed the `exit` command, because the shell exits.
|
||||
|
||||
Status Reason
|
||||
-------- ----------------------------------------------------------------------------
|
||||
255 invalid (e.g. non-numeric) argument - this staus is returned to the parent
|
||||
|Status|Reason|
|
||||
|------|------|
|
||||
|255|invalid (e.g. non-numeric) argument - this staus is returned to the parent|
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -14,21 +14,21 @@ it.
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
-------- ------------------------------------------------------------------------------------------------------------
|
||||
`-f` refer to shell functions
|
||||
`-n` remove the export property from any referenced `NAME`
|
||||
`-p` print all exported variables, with `-f`, print all exported functions - all in a format re-usable as input
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-f`|refer to shell functions|
|
||||
|`-n`|remove the export property from any referenced `NAME`|
|
||||
|`-p`|print all exported variables, with `-f`, print all exported functions - all in a format re-usable as input|
|
||||
|
||||
An argument of `--` disables further option processing.
|
||||
|
||||
### Return status
|
||||
|
||||
Status Reason
|
||||
-------- ---------------------------
|
||||
0 no error
|
||||
!=0 invalid option
|
||||
!=0 a given `NAME` is invalid
|
||||
|Status|Reason|
|
||||
|------|------|
|
||||
|0|no error|
|
||||
|!=0|invalid option|
|
||||
|!=0|a given `NAME` is invalid|
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -32,22 +32,22 @@ external `kill` command of the operating system to
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
------------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
`-s SIGNAL` specifies the signal to send
|
||||
`-n SIGNALNUMBER` specifies the signal to send
|
||||
`-SIGNAL` specifies the signal to send
|
||||
`-l [SIGNAL...]` Lists supported/known signal numbers and their symbolic name. If `SIGNAL` is given, only list this signal, translated (if a number is given the symbolic name is printed, and vice versa)
|
||||
`-L [SIGNAL...]` Same as `-l [SIGNAL]` (compatiblity option)
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-s SIGNAL`|specifies the signal to send|
|
||||
|`-n SIGNALNUMBER`|specifies the signal to send|
|
||||
|`-SIGNAL`|specifies the signal to send|
|
||||
|`-l [SIGNAL...]`|Lists supported/known signal numbers and their symbolic name. If `SIGNAL` is given, only list this signal, translated (if a number is given the symbolic name is printed, and vice versa)|
|
||||
|`-L [SIGNAL...]`|Same as `-l [SIGNAL]` (compatiblity option)|
|
||||
|
||||
### Return status
|
||||
|
||||
Status Reason
|
||||
-------- -----------------------------------------------------------------------------------------------------
|
||||
0 no error/success
|
||||
!=0 invalid option
|
||||
!=0 invalid signal specification
|
||||
!=0 error returned by the system function (e.g. insufficient permissions to send to a specific process)
|
||||
|Status|Reason|
|
||||
|------|------|
|
||||
|0|no error/success|
|
||||
|!=0|invalid option|
|
||||
|!=0|invalid signal specification|
|
||||
|!=0|error returned by the system function (e.g. insufficient permissions to send to a specific process)|
|
||||
|
||||
## Examples
|
||||
|
||||
|
@ -19,15 +19,15 @@ target array must be a "normal" integer indexed array.
|
||||
`mapfile` returns success (0) unless an invalid option is given or the
|
||||
given array `ARRAY` is set readonly.
|
||||
|
||||
Option Description
|
||||
--------------- ---------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
`-c QUANTUM` Specifies the number of lines that have to be read between every call to the callback specified with `-C`. The default QUANTUM is 5000
|
||||
`-C CALLBACK` Specifies a callback. The string `CALLBACK` can be any shell code, the index of the array that will be assigned, and the line is appended at evaluation time.
|
||||
`-n COUNT` Reads at most `COUNT` lines, then terminates. If `COUNT` is 0, then all lines are read (default).
|
||||
`-O ORIGIN` Starts populating the given array `ARRAY` at the index `ORIGIN` rather than clearing it and starting at index 0.
|
||||
`-s COUNT` Discards the first `COUNT` lines read.
|
||||
`-t` Remove any trailing newline from a line read, before it is assigned to an array element.
|
||||
`-u FD` Read from filedescriptor `FD` rather than standard input.
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-c QUANTUM`|Specifies the number of lines that have to be read between every call to the callback specified with `-C`. The default QUANTUM is 5000|
|
||||
|`-C CALLBACK`|Specifies a callback. The string `CALLBACK` can be any shell code, the index of the array that will be assigned, and the line is appended at evaluation time.|
|
||||
|`-n COUNT`|Reads at most `COUNT` lines, then terminates. If `COUNT` is 0, then all lines are read (default).|
|
||||
|`-O ORIGIN`|Starts populating the given array `ARRAY` at the index `ORIGIN` rather than clearing it and starting at index 0.|
|
||||
|`-s COUNT`|Discards the first `COUNT` lines read.|
|
||||
|`-t`|Remove any trailing newline from a line read, before it is assigned to an array element.|
|
||||
|`-u FD`|Read from filedescriptor `FD` rather than standard input.|
|
||||
|
||||
While `mapfile` isn't a common or portable shell feature, it's
|
||||
functionality will be familiar to many programmers. Almost all
|
||||
|
@ -39,19 +39,19 @@ line is read). That means the timeout can occur during input, too.
|
||||
|
||||
### Options
|
||||
|
||||
Option Description
|
||||
---------------- -------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
`-a <ARRAY>` read the data word-wise into the specified array `<ARRAY>` instead of normal variables
|
||||
`-d <DELIM>` recognize `<DELIM>` as data-end, rather than `<newline>`
|
||||
`-e` on interactive shells: use Bash's readline interface to read the data. Since version 5.1-alpha, this can also be used on specified file descriptors using `-u`
|
||||
`-i <STRING>` preloads the input buffer with text from `<STRING>`, only works when Readline (`-e`) is used
|
||||
`-n <NCHARS>` reads `<NCHARS>` characters of input, then quits
|
||||
`-N <NCHARS>` reads `<NCHARS>` characters of input, *ignoring any delimiter*, then quits
|
||||
`-p <PROMPT>` the prompt string `<PROMPT>` is output (without a trailing automatic newline) before the read is performed
|
||||
`-r` raw input - **disables** interpretion of **backslash escapes** and **line-continuation** in the read data
|
||||
`-s` secure input - don't echo input if on a terminal (passwords!)
|
||||
`-t <TIMEOUT>` wait for data `<TIMEOUT>` seconds, then quit (exit code 1). Fractional seconds ("5.33") are allowed since Bash 4. A value of 0 immediately returns and indicates if data is waiting in the exit code. Timeout is indicated by an exit code greater than 128. If timeout arrives before data is read completely (before end-of-line), the partial data is saved.
|
||||
`-u <FD>` use the filedescriptor number `<FD>` rather than `stdin` (0)
|
||||
|Option|Description|
|
||||
|------|-----------|
|
||||
|`-a <ARRAY>`|read the data word-wise into the specified array `<ARRAY>` instead of normal variables|
|
||||
|`-d <DELIM>`|recognize `<DELIM>` as data-end, rather than `<newline>`|
|
||||
|`-e`|on interactive shells: use Bash's readline interface to read the data. Since version 5.1-alpha, this can also be used on specified file descriptors using `-u`|
|
||||
|`-i <STRING>`|preloads the input buffer with text from `<STRING>`, only works when Readline (`-e`) is used|
|
||||
|`-n <NCHARS>`|reads `<NCHARS>` characters of input, then quits|
|
||||
|`-N <NCHARS>`|reads `<NCHARS>` characters of input, *ignoring any delimiter*, then quits|
|
||||
|`-p <PROMPT>`|the prompt string `<PROMPT>` is output (without a trailing automatic newline) before the read is performed|
|
||||
|`-r`|raw input - **disables** interpretion of **backslash escapes** and **line-continuation** in the read data|
|
||||
|`-s`|secure input - don't echo input if on a terminal (passwords!)|
|
||||
|`-t <TIMEOUT>`|wait for data `<TIMEOUT>` seconds, then quit (exit code 1). Fractional seconds ("5.33") are allowed since Bash 4. A value of 0 immediately returns and indicates if data is waiting in the exit code. Timeout is indicated by an exit code greater than 128. If timeout arrives before data is read completely (before end-of-line), the partial data is saved.|
|
||||
|`-u <FD>`|use the filedescriptor number `<FD>` rather than `stdin` (0)|
|
||||
|
||||
When both, `-a <ARRAY>` and a variable name `<NAME>` is given, then the
|
||||
array is set, but not the variable.
|
||||
@ -61,8 +61,7 @@ Of course it's valid to set individual array elements without using
|
||||
|
||||
read MYARRAY[5]
|
||||
|
||||
<WRAP center round important 90%>
|
||||
|
||||
!!! WARNING
|
||||
Reading into array elements using the syntax above **may cause [pathname
|
||||
expansion](../../syntax/expansion/globs.md) to occur**.
|
||||
|
||||
@ -81,18 +80,16 @@ array name and index:
|
||||
|
||||
read 'x[1]'
|
||||
|
||||
</WRAP>
|
||||
|
||||
### Return status
|
||||
|
||||
Status Reason
|
||||
-------- ---------------------------------------------------
|
||||
0 no error
|
||||
0 error when assigning to a read-only variable [^1]
|
||||
2 invalid option
|
||||
>128 timeout (see `-t`)
|
||||
!=0 invalid filedescriptor supplied to `-u`
|
||||
!=0 end-of-file reached
|
||||
|Status|Reason|
|
||||
|------|------|
|
||||
|0|no error|
|
||||
|0|error when assigning to a read-only variable [^1]|
|
||||
|2|invalid option|
|
||||
|>128|timeout (see `-t`)|
|
||||
|!=0|invalid filedescriptor supplied to `-u`|
|
||||
|!=0|end-of-file reached|
|
||||
|
||||
### read without -r
|
||||
|
||||
|
@ -32,15 +32,15 @@ The code is a number between 0 and 255, where the part from 126 to 255
|
||||
is reserved to be used by the Bash shell directly or for special
|
||||
purposes, like reporting a termination by a signal:
|
||||
|
||||
Code Description
|
||||
--------- ------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
0 success
|
||||
1-255 failure (in general)
|
||||
126 the requested command (file) can't be executed (but was found)
|
||||
127 command (file) not found
|
||||
128 according to ABS it's used to report an invalid argument to the exit builtin, but I wasn't able to verify that in the source code of Bash (see code 255)
|
||||
128 + N the shell was terminated by the signal N (also used like this by various other programs)
|
||||
255 wrong argument to the exit builtin (see code 128)
|
||||
|Code|Description|
|
||||
|----|-----------|
|
||||
|0|success|
|
||||
|1-255|failure (in general)|
|
||||
|126|the requested command (file) can't be executed (but was found)|
|
||||
|127|command (file) not found|
|
||||
|128|according to ABS it's used to report an invalid argument to the exit builtin, but I wasn't able to verify that in the source code of Bash (see code 255)|
|
||||
|128+N|the shell was terminated by the signal N (also used like this by various other programs)|
|
||||
|255|wrong argument to the exit builtin (see code 128)|
|
||||
|
||||
The lower codes 0 to 125 are not reserved and may be used for whatever
|
||||
the program likes to report. A value of **0 means successful**
|
||||
@ -56,85 +56,51 @@ negation (`! pipeline`).
|
||||
|
||||
### Misc
|
||||
|
||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
test bash\ bash\ zsh 5.0.2\ ksh93\ mksh\ posh\ dash\ busybox\ heirloom\
|
||||
4.2.45 (POSIX) (emulate ksh) 93v- 2013-03-18 R44 2013/02/24 0.11 0.5.7.3 1.2.1 050706
|
||||
----------------------------------------------------------------------------------------------------- -------- --------- --------------- ----------------- ---------------- ------- --------- ---------- -----------
|
||||
`` :; : `false` `echo $? >&2` `` 1 1 1 1 0 0 0 0 1
|
||||
|test|bash 4.2.45|bash (POSIX)|zsh 5.0.2 (emulate ksh)|ksh93 93v- 2013-03-18|mksh R44 2013/02/24|posh 0.11|dash 0.5.7.3|busybox 1.2.1|heirloom 050706|
|
||||
|--|--|--|--|--|--|--|--|--|--|
|
||||
|<pre>:; : \`false\` \`echo $? >&2\`</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|<pre>false; eval; echo $?</pre>|0|0|0|0|0|1|0|1|0|
|
||||
|<pre>x=\`false\` eval echo $?</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|<pre>eval echo \$? <&0\`false\`</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|<pre>while :; do ! break; done; echo $?</pre>|1|1|1|1|0|0|1|1|-|
|
||||
|<pre>false; :| echo $?</pre><br>[discussion](https://lists.gnu.org/archive/html/bug-bash/2010-09/msg00009.html)|1|1|1|0|1|1|1|1|0|
|
||||
|<pre>(exit 2); for x in "\`exit 3\`"; do echo $?; done</pre>|3|3|3|3|2|2|0|0|3|
|
||||
|
||||
`false; eval; echo $?` 0 0 0 0 0 1 0 1 0
|
||||
|
||||
`` x=`false` eval echo \$? `` 1 1 1 1 0 0 0 0 1
|
||||
|
||||
`` eval echo \$? <&0`false` `` 1 1 1 1 0 0 0 0 1
|
||||
|
||||
`while :; do ! break; done; echo $?` 1 1 1 1 0 0 1 1 -
|
||||
|
||||
[discussion](https://lists.gnu.org/archive/html/bug-bash/2010-09/msg00009.html)`false; : | echo $?` 1 1 1 0 1 1 1 1 0
|
||||
|
||||
`` (exit 2); for x in "`exit 3`"; do echo $?; done `` 3 3 3 3 2 2 0 0 3
|
||||
--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|
||||
### functions
|
||||
|
||||
Measuring side-effects during the function call, during return, and
|
||||
transparency of the return builtin.
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------
|
||||
test bash bash\ zsh\ ksh93 mksh posh dash busybox heirloom
|
||||
(POSIX) (emulate ksh)
|
||||
-------------------------------------------------------- ------ --------- --------------- ------- ------ ------ ------ --------- ----------
|
||||
`` f() { echo $?; }; :; f `false` `` 1 1 1 1 0 0 0 0 1
|
||||
|
||||
`f() { return; }; false; f; echo $?` 1 1 1 0 1 1 1 1 1
|
||||
|
||||
`f() { return $?; }; false; f; echo $?` 1 1 1 1 1 1 1 1 1
|
||||
|
||||
`f() { ! return; }; f; echo $?` 0 0 1 0 0 0 1 1 -
|
||||
|
||||
`f() { ! return; }; false; f; echo $?` 1 1 0 0 1 1 0 0 -
|
||||
|
||||
`` f() { return; }; x=`false` f; echo $? `` 1 1 1 1 0 0 0 0 0
|
||||
|
||||
`` f() { return; }; f <&0`false`; echo $? `` 1 1 1 1 0 0 0 0 1
|
||||
|
||||
`` f() { x=`false` return; }; f; echo $? `` 1 1 1 0 0 0 0 0 1
|
||||
|
||||
`` f() { return <&0`false`; }; f; echo $? `` 1 1 1 0 0 0 0 0 1
|
||||
|
||||
`` f() { x=`false` return <&0`false`; }; f; echo $? `` 1 1 1 1 0 0 0 0 1
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|test|bash|bash<br>(POSIX)|zsh<br>(emulate ksh)|ksh93|mksh|posh|dash|busybox|heirloom
|
||||
|--|--|--|--|--|--|--|--|--|--|
|
||||
|<pre>f() { echo $?; }; :; f \`false\`</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|<pre>f() { return; }; false; f; echo $?</pre>|1|1|1|0|1|1|1|1|1|
|
||||
|<pre>f() { return $?; }; false; f; echo $?</pre>|1|1|1|1|1|1|1|1|1|
|
||||
|<pre>f() { ! return; }; f; echo $?</pre>|0|0|1|0|0|0|1|1|-|
|
||||
|<pre>f() { ! return; }; false; f; echo $?</pre>|1|1|0|0|1|1|0|0|-|
|
||||
|<pre>f() { return; }; x=\`false\` f; echo $?</pre>|1|1|1|1|0|0|0|0|0|
|
||||
|<pre>f() { return; }; f <&0\`false\`; echo $?</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|<pre>f() { x=\`false\` return; }; f; echo $?</pre>|1|1|1|0|0|0|0|0|1|
|
||||
|<pre>f() { return <&0\`false\`; }; f; echo $?</pre>|1|1|1|0|0|0|0|0|1|
|
||||
|<pre>f() { x=\`false\` return <&0\`false\`; }; f; echo $?</pre>|1|1|1|1|0|0|0|0|1|
|
||||
|
||||
### case..esac
|
||||
|
||||
Statuses measured within the command and after, with matching and
|
||||
non-matching patterns.
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
test bash bash\ zsh\ ksh93 mksh posh dash busybox heirloom
|
||||
(POSIX) (emulate ksh)
|
||||
-------------------------------------------------------------- ------ --------- --------------- ------- ------ ------ ------ --------- ----------
|
||||
`(exit 2); case x in x) echo $?;; esac` 2 2 0 2 2 2 0 0 2
|
||||
|
||||
`` (exit 2); case `exit 3`x in x) echo $?;; esac `` 3 3 0 3 2 2 0 0 3
|
||||
|
||||
`` (exit 2); case x in `exit 4`x) echo $?;; esac `` 4 4 4 4 2 2 0 0 4
|
||||
|
||||
`` (exit 2); case `exit 3`x in `exit 4`x) echo $?;; esac `` 4 4 4 4 2 2 0 0 4
|
||||
|
||||
`(exit 2); case x in x);; esac; echo $?` 0 0 0 0 0 0 0 0 2
|
||||
|
||||
`(exit 2); case x in "");; esac; echo $?` 0 0 0 0 0 0 0 0 2
|
||||
|
||||
`` (exit 2); case `exit 3`x in x);; esac; echo $? `` 0 0 0 3 0 0 0 0 3
|
||||
|
||||
`` (exit 2); case `exit 3`x in "");; esac; echo $? `` 0 0 0 3 0 0 0 0 3
|
||||
|
||||
`` (exit 2); case x in `exit 4`x);; esac; echo $? `` 0 0 0 4 0 0 0 0 4
|
||||
|
||||
`` (exit 2); case x in `exit 4`);; esac; echo $? `` 0 0 4 4 0 0 0 0 4
|
||||
|
||||
`` (exit 2); case `exit 3`x in `exit 4`);; esac; echo $? `` 0 0 4 4 0 0 0 0 4
|
||||
|
||||
`` (exit 2); case `exit 3`x in `exit 4`x);; esac; echo $? `` 0 0 0 4 0 0 0 0 4
|
||||
-------------------------------------------------------------------------------------------------------------------------------------------------
|
||||
|test|bash|bash<br>(POSIX)|zsh<br>(emulate ksh)|ksh93|mksh|posh|dash|busybox|heirloom|
|
||||
|--|--|--|--|--|--|--|--|--|--|
|
||||
|<pre>(exit 2); case x in x) echo $?;; esac</pre>|2|2|0|2|2|2|0|0|2|
|
||||
|<pre> (exit 2); case \`exit 3\`x in x) echo $?;; esac</pre>|3|3|0|3|2|2|0|0|3|
|
||||
|<pre> (exit 2); case x in \`exit 4\`x) echo $?;; esac</pre>|4|4|4|4|2|2|0|0|4|
|
||||
|<pre> (exit 2); case \`exit 3\`x in \`exit 4\`x) echo $?;; esac</pre>|4|4|4|4|2|2|0|0|4|
|
||||
|<pre>(exit 2); case x in x);; esac; echo $?</pre>|0|0|0|0|0|0|0|0|2|
|
||||
|<pre>(exit 2); case x in "");; esac; echo $?</pre>|0|0|0|0|0|0|0|0|2|
|
||||
|<pre>(exit 2); case \`exit 3\`x in x);; esac; echo $?</pre>|0|0|0|3|0|0|0|0|3|
|
||||
|<pre>(exit 2); case \`exit 3\`x in "");; esac; echo $?</pre>|0|0|0|3|0|0|0|0|3|
|
||||
|<pre>(exit 2); case x in \`exit 4\`x);; esac; echo $?</pre>|0|0|0|4|0|0|0|0|4|
|
||||
|<pre>(exit 2); case x in \`exit 4\`);; esac; echo $?</pre>|0|0|4|4|0|0|0|0|4|
|
||||
|<pre>(exit 2); case \`exit 3\`x in \`exit 4\`);; esac; echo $?</pre>|0|0|4|4|0|0|0|0|4|
|
||||
|<pre> (exit 2); case \`exit 3\`x in \`exit 4\`x);; esac; echo $?</pre>|0|0|0|4|0|0|0|0|4|
|
||||
|
@ -38,12 +38,12 @@ There are four basic operation modes to *list*, *read*, *write* and
|
||||
*copy* archives. They're switched with combinations of `-r` and `-w`
|
||||
command line options:
|
||||
|
||||
Mode RW-Options
|
||||
------- -----------------
|
||||
List *no RW-options*
|
||||
Read `-r`
|
||||
Write `-w`
|
||||
Copy `-r -w`
|
||||
|Mode|RW-Options|
|
||||
|----|----------|
|
||||
|List|*no RW-options*|
|
||||
|Read|`-r`|
|
||||
|Write|`-w`|
|
||||
|Copy|`-r -w`|
|
||||
|
||||
#### List
|
||||
|
||||
@ -99,14 +99,14 @@ creates `ustar` if no options are specified).
|
||||
|
||||
The following archive formats are supported (Berkeley implementation):
|
||||
|
||||
--------- ----------------------------
|
||||
ustar POSIX TAR format (default)
|
||||
cpio POSIX CPIO format
|
||||
tar classic BSD TAR format
|
||||
bcpio old binary CPIO format
|
||||
sv4cpio SVR4 CPIO format
|
||||
sv4crc SVR4 CPIO format with CRC
|
||||
--------- ----------------------------
|
||||
| | |
|
||||
|--|--|
|
||||
|ustar|POSIX TAR format (default)|
|
||||
|cpio|POSIX CPIO format|
|
||||
|tar|classic BSD TAR format|
|
||||
|bcpio|old binary CPIO format|
|
||||
|sv4cpio|SVR4 CPIO format|
|
||||
|sv4crc|SVR4 CPIO format with CRC|
|
||||
|
||||
Berkeley `pax` supports options `-z` and `-j`, similar to GNU `tar`, to
|
||||
filter archive files through GZIP/BZIP2.
|
||||
@ -337,13 +337,13 @@ in your `~/.bashrc` can be useful :-D.
|
||||
Here is a quick table comparing (GNU) `tar` and `pax` to help you to
|
||||
make the switch:
|
||||
|
||||
TAR PAX Notes
|
||||
------------------------------------- ------------------------------------------ -----------------------------------------------------------------------
|
||||
`tar xzvf file.tar.gz` `pax -rvz -f file.tar.gz` `-z` is an extension, POSIXly: `gunzip <file.tar.gz | pax -rv`
|
||||
`tar czvf archive.tar.gz path ...` `pax -wvz -f archive.tar.gz path ...` `-z` is an extension, POSIXly: `pax -wv path | gzip > archive.tar.gz`
|
||||
`tar xjvf file.tar.bz2` `bunzip2 <file.tar.bz2 | pax -rv`
|
||||
`tar cjvf archive.tar.bz2 path ...` `pax -wv path | bzip2 > archive.tar.bz2`
|
||||
`tar tzvf file.tar.gz` `pax -vz -f file.tar.gz` `-z` is an extension, POSIXly: `gunzip <file.tar.gz | pax -v`
|
||||
|TAR|PAX|Notes|
|
||||
|---|---|-----|
|
||||
|`tar xzvf file.tar.gz`|`pax -rvz -f file.tar.gz`|`-z` is an extension, POSIXly: `gunzip <file.tar.gz | pax -rv`|
|
||||
|`tar czvf archive.tar.gz path ...`|`pax -wvz -f archive.tar.gz path ...`|`-z` is an extension, POSIXly: `pax -wv path | gzip > archive.tar.gz`|
|
||||
|`tar xjvf file.tar.bz2`|`bunzip2 <file.tar.bz2 | pax -rv`|
|
||||
|`tar cjvf archive.tar.bz2 path ...`|`pax -wv path | bzip2 > archive.tar.bz2`|
|
||||
|`tar tzvf file.tar.gz`|`pax -vz -f file.tar.gz`|`-z` is an extension, POSIXly: `gunzip <file.tar.gz | pax -v`|
|
||||
|
||||
`pax` might not create ustar (`tar`) archives by default but its own pax
|
||||
format, add `-x ustar` if you want to ensure pax creates tar archives!
|
||||
|
@ -69,12 +69,13 @@ a comment. The shebang is for the operating system, not for the shell.
|
||||
Programs that don't ignore such lines, may not work as shebang driven
|
||||
interpreters.
|
||||
|
||||
<WRAP center round important 60%> <u>**Attention:**</u>When the
|
||||
!!! WARNING
|
||||
<u>**Attention:**</u>When the
|
||||
specified interpreter is unavailable or not executable (permissions),
|
||||
you usually get a "`bad interpreter`" error message., If you get
|
||||
nothing and it fails, check the shebang. Older Bash versions will
|
||||
respond with a "`no such file or directory`" error for a nonexistant
|
||||
interpreter specified by the shebang. </WRAP>
|
||||
interpreter specified by the shebang.
|
||||
|
||||
**Additional note:** When you specify `#!/bin/sh` as shebang and that's
|
||||
a link to a Bash, then Bash will run in POSIX(r) mode! See:
|
||||
@ -130,16 +131,16 @@ and system-variable names are usually all in UPPERCASE. However, you
|
||||
should avoid naming your variables any of the following (incomplete
|
||||
list!):
|
||||
|
||||
---------------- ------------- ---------------- --------------- ------------------ -----------------
|
||||
`BASH` `BASH_ARGC` `BASH_ARGV` `BASH_LINENO` `BASH_SOURCE` `BASH_VERSINFO`
|
||||
`BASH_VERSION` `COLUMNS` `DIRSTACK` `DISPLAY` `EDITOR` `EUID`
|
||||
`GROUPS` `HISTFILE` `HISTFILESIZE` `HISTSIZE` `HOME` `HOSTNAME`
|
||||
`IFS` `LANG` `LANGUAGE` `LC_ALL` `LINES` `LOGNAME`
|
||||
`LS_COLORS` `MACHTYPE` `MAILCHECK` `OLDPWD` `OPTERR` `OPTIND`
|
||||
`OSTYPE` `PATH` `PIPESTATUS` `PPID` `PROMPT_COMMAND` `PS1`
|
||||
`PS2` `PS4` `PS3` `PWD` `SHELL` `SHELLOPTS`
|
||||
`SHLVL` `TERM` `UID` `USER` `USERNAME` `XAUTHORITY`
|
||||
---------------- ------------- ---------------- --------------- ------------------ -----------------
|
||||
| | | | | | |
|
||||
|--|--|--|--|--|--|
|
||||
|`BASH`|`BASH_ARGC`|`BASH_ARGV`|`BASH_LINENO`|`BASH_SOURCE`|`BASH_VERSINFO`|
|
||||
|`BASH_VERSION`|`COLUMNS`|`DIRSTACK`|`DISPLAY`|`EDITOR`|`EUID`|
|
||||
|`GROUPS`|`HISTFILE`|`HISTFILESIZE`|`HISTSIZE`|`HOME`|`HOSTNAME`|
|
||||
|`IFS`|`LANG`|`LANGUAGE`|`LC_ALL`|`LINES`|`LOGNAME`|
|
||||
|`LS_COLORS`|`MACHTYPE`|`MAILCHECK`|`OLDPWD`|`OPTERR`|`OPTIND`|
|
||||
|`OSTYPE`|`PATH`|`PIPESTATUS`|`PPID`|`PROMPT_COMMAND`|`PS1`|
|
||||
|`PS2`|`PS4`|`PS3`|`PWD`|`SHELL`|`SHELLOPTS`|
|
||||
|`SHLVL`|`TERM`|`UID`|`USER`|`USERNAME`|`XAUTHORITY`|
|
||||
|
||||
This list is incomplete. **The safest way is to use all-lowercase
|
||||
variable names.**
|
||||
|
@ -154,12 +154,12 @@ Let's define an example variable containing text with spaces:
|
||||
|
||||
example="Hello world"
|
||||
|
||||
Used form result number of words
|
||||
-------------- --------------- -----------------
|
||||
`$example` `Hello world` 2
|
||||
`"$example"` `Hello world` 1
|
||||
`\$example` `$example` 1
|
||||
`'$example'` `$example` 1
|
||||
|Used form|result|number of words|
|
||||
|---------|------|---------------|
|
||||
|`$example`|`Hello world`|2|
|
||||
|`"$example"`|`Hello world`|1|
|
||||
|`\$example`|`$example`|1|
|
||||
|`'$example'`|`$example`|1|
|
||||
|
||||
If you use parameter expansion, you **must** use the **name** (`PATH`)
|
||||
of the referenced variables/parameters. i.e. **not** (`$PATH`):
|
||||
|
@ -89,37 +89,23 @@ terminals.
|
||||
|
||||
### Cursor handling
|
||||
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
ANSI terminfo equivalent Description
|
||||
----------------------------------------- --------------------- ---------------------------------------------------------------
|
||||
`[ <X> ; <Y> H`\ `cup <X> <Y>` Home-positioning to `X` and `Y` coordinates\
|
||||
`[ <X> ; <Y> f` :!: it seems that ANSI uses 1-1 as home while `tput` uses 0-0
|
||||
|
||||
`[ H` `home` Move cursor to home position (0-0)
|
||||
|
||||
`7` `sc` Save current cursor position
|
||||
|
||||
`8` `rc` Restore saved cursor position
|
||||
|
||||
:?: most likely a normal code like `\b` `cub1` move left one space (backspace)
|
||||
|
||||
VT100 `[ ? 25 l` `civis` make cursor invisible
|
||||
|
||||
VT100 `[ ? 25 h` `cvvis` make cursor visible
|
||||
-------------------------------------------------------------------------------------------------------------------------------
|
||||
|ANSI | terminfo equivalent | Description |
|
||||
|----------------------------------------|---------------------|-------------|
|
||||
|`[ <X> ; <Y> H`<br>`[ <X> ; <Y> f`|`cup <X> <Y>`|Home-positioning to `X` and `Y` coordinates<br>:!: it seems that ANSI uses 1-1 as home while `tput` uses 0-0|
|
||||
|`[ H`|`home`|Move cursor to home position (0-0)|
|
||||
|`7`|`sc`|Save current cursor position|
|
||||
|`8`|`rc`|Restore saved cursor position|
|
||||
|:?: most likely a normal code like `\b`|`cub1`|move left one space (backspace)|
|
||||
|VT100 `[ ? 25 l`|`civis`|make cursor invisible|
|
||||
|VT100 `[ ? 25 h`|`cvvis`|make cursor visible|
|
||||
|
||||
### Erasing text
|
||||
|
||||
------------------------------------------------------------------------------------------------
|
||||
ANSI terminfo equivalent Description
|
||||
--------- --------------------- ----------------------------------------------------------------
|
||||
`[ K`\ `el` **Clear line** from current cursor position **to end** of line
|
||||
`[ 0 K`
|
||||
|
||||
`[ 1 K` `el1` **Clear line from beginning** to current cursor position
|
||||
|
||||
`[ 2 K` `el2`:?: **Clear whole line** (cursor position unchanged)
|
||||
------------------------------------------------------------------------------------------------
|
||||
|ANSI |terminfo equivalent |Description|
|
||||
|---------|---------------------|-----------|
|
||||
|`[ K`<br>`[ 0 K`|`el`|**Clear line** from current cursor position **to end** of line|
|
||||
|`[ 1 K`|`el1`|**Clear line from beginning** to current cursor position|
|
||||
|`[ 2 K`|`el2` :?:|**Clear whole line** (cursor position unchanged)|
|
||||
|
||||
### General text attributes
|
||||
|
||||
@ -133,6 +119,7 @@ terminals.
|
||||
|`[ 5 m`|`blink`|Set "blink" attribute|
|
||||
|`[ 7 m`|`rev`|Set "reverse" attribute|
|
||||
|`[ 8 m`|`invis`|Set "hidden" attribute|
|
||||
|
||||
### Foreground coloring
|
||||
|
||||
|ANSI|terminfo equivalent|Description|
|
||||
|
@ -1,10 +1,11 @@
|
||||
---
|
||||
tags:
|
||||
- awk
|
||||
- csv
|
||||
---
|
||||
|
||||
# Using `awk` to deal with CSV that uses quoted/unquoted delimiters
|
||||
|
||||
---- dataentry snipplet ---- snipplet_tags : awk, csv
|
||||
LastUpdate_dt : 2010-07-31 Contributors : SiegX (IRC) type : snipplet
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
CSV files are a mess, yes.
|
||||
|
||||
Assume you have CSV files that use the comma as delimiter and quoted
|
||||
@ -21,11 +22,11 @@ Solution: Use the field separator `", "|^"|"$` for `awk`.
|
||||
|
||||
This is an OR-ed list of 3 possible separators:
|
||||
|
||||
-------- -----------------------------------------------
|
||||
`", "` matches the area between the datafields
|
||||
`^"` matches the area left of the first datafield
|
||||
`"$` matches the area right of the last data field
|
||||
-------- -----------------------------------------------
|
||||
| | |
|
||||
|--------|----------------------------------------------|
|
||||
|`", "` | matches the area between the datafields|
|
||||
|`^"` | matches the area left of the first datafield|
|
||||
|`"$` | matches the area right of the last data field|
|
||||
|
||||
You can tune these delimiters if you have other needs (for example if
|
||||
you don't have a space after the commas).
|
||||
|
@ -1,15 +1,15 @@
|
||||
---
|
||||
tags:
|
||||
- arguments
|
||||
- quoting
|
||||
- escape
|
||||
- quote
|
||||
- wrapper
|
||||
- generate
|
||||
---
|
||||
|
||||
# Generate code with own arguments properly quoted
|
||||
|
||||
---- dataentry snipplet ---- snipplet_tags: arguments, quoting,
|
||||
escaping, wrapper LastUpdate_dt: 2010-07-31 Contributors: Jan Schampera
|
||||
type: snipplet
|
||||
|
||||
------------------------------------------------------------------------
|
||||
|
||||
Keywords: arguments,escape,quote,wrapper,generate
|
||||
-------------- -----------------------------------------
|
||||
Contributor: self
|
||||
|
||||
There are situations where Bash code needs to generate Bash code. A
|
||||
script that writes out another script the user or cron may start, for
|
||||
example.
|
||||
|
@ -322,10 +322,10 @@ will try to remove the shortest text matching the pattern, while
|
||||
following examples to get the idea (matched text ~~marked striked~~,
|
||||
remember it will be removed!):
|
||||
|
||||
Syntax Result
|
||||
-------------------- ----------------------------------------------------------------------
|
||||
`${MYSTRING#*in}` ~~Be liberal in~~ what you accept, and conservative in what you send
|
||||
`${MYSTRING##*in}` ~~Be liberal in what you accept, and conservative in~~ what you send
|
||||
|Syntax|Result|
|
||||
|------|------|
|
||||
|`${MYSTRING#*in}`|~~Be liberal in~~ what you accept, and conservative in what you send|
|
||||
|`${MYSTRING##*in}`|~~Be liberal in what you accept, and conservative in~~ what you send|
|
||||
|
||||
### From the end
|
||||
|
||||
@ -334,10 +334,10 @@ remember it will be removed!):
|
||||
In the second form everything will be the same, except that Bash now
|
||||
tries to match the pattern from the end of the string:
|
||||
|
||||
Syntax Result
|
||||
-------------------- ----------------------------------------------------------------------
|
||||
`${MYSTRING%in*}` Be liberal in what you accept, and conservative ~~in what you send~~
|
||||
`${MYSTRING%%in*}` Be liberal ~~in what you accept, and conservative in what you send~~
|
||||
|Syntax|Result|
|
||||
|------|------|
|
||||
|`${MYSTRING%in*}`|Be liberal in what you accept, and conservative ~~in what you send~~|
|
||||
|`${MYSTRING%%in*}`|Be liberal ~~in what you accept, and conservative in what you send~~|
|
||||
|
||||
The second form nullifies variables that begin with `in`, by working
|
||||
from the end.
|
||||
|
@ -233,14 +233,14 @@ A readonly array variable whose members hold version information for
|
||||
this instance of Bash. The values assigned to the array members are as
|
||||
follows:
|
||||
|
||||
-------------------- ----------------------------------------
|
||||
BASH_VERSINFO\[0\] The major version number (the release)
|
||||
BASH_VERSINFO\[1\] The minor version number (the version)
|
||||
BASH_VERSINFO\[2\] The patch level
|
||||
BASH_VERSINFO\[3\] The build version
|
||||
BASH_VERSINFO\[4\] The release status (e.g., beta1)
|
||||
BASH_VERSINFO\[5\] The value of `MACHTYPE`
|
||||
-------------------- ----------------------------------------
|
||||
|--|--|
|
||||
|--|--|
|
||||
|BASH_VERSINFO\[0\]|The major version number (the release)|
|
||||
|BASH_VERSINFO\[1\]|The minor version number (the version)|
|
||||
|BASH_VERSINFO\[2\]|The patch level|
|
||||
|BASH_VERSINFO\[3\]|The build version|
|
||||
|BASH_VERSINFO\[4\]|The release status (e.g., beta1)|
|
||||
|BASH_VERSINFO\[5\]|The value of `MACHTYPE`|
|
||||
|
||||
### BASH_VERSION
|
||||
|
||||
@ -316,13 +316,13 @@ current command, the value of this variable is equal to `${#COMP_LINE}`.
|
||||
Set to an integer value corresponding to the type of completion
|
||||
attempted that caused a completion function to be called:
|
||||
|
||||
------- ---------------------------------------------------
|
||||
`TAB` normal completion
|
||||
`?` listing completions after successive tabs
|
||||
`!` listing alternatives on partial word completion
|
||||
`@` to list completions if the word is not unmodified
|
||||
`%` for menu completion
|
||||
------- ---------------------------------------------------
|
||||
|--|--|
|
||||
|--|--|
|
||||
|`TAB`|normal completion|
|
||||
|`?`|listing completions after successive tabs|
|
||||
|`!`|listing alternatives on partial word completion|
|
||||
|`@`|to list completions if the word is not unmodified|
|
||||
|`%`|for menu completion|
|
||||
|
||||
!!! warning "FIXME"
|
||||
where are the integer values?
|
||||
@ -1047,7 +1047,7 @@ selected with a variable starting with `LC_`.
|
||||
### LC_ALL
|
||||
|
||||
| Variable: |`LC_ALL` |Since: |unknown|
|
||||
-------------- ----------------- ------------ ---------
|
||||
| -------------- |----------------- |------------ |---------|
|
||||
| Type: |normal variable |Read-only: |no|
|
||||
| Set by Bash: |no |Default: |n/a|
|
||||
|
||||
|
Loading…
Reference in New Issue
Block a user