neulab/tldr huggingface dataset:
readonly [-aAf] [-p] [name[=word] ...] The given names are marked readonly; the values of these names may not be changed by subsequent assignment.  If the -f option is supplied, the functions corresponding to the names are so marked. The -a option restricts the variables to indexed arrays; the -A option restricts the variables to associative arrays.  If both options are supplied, -A takes precedence.  If no name arguments are given, or if the -p option is supplied, a list of all readonly names is printed.  The other options may be used to restrict the output to a subset of the set of readonly names.  The -p option causes output to be displayed in a format that may be reused as input.  If a variable name is followed by =word, the value of the variable is set to word.  The return status is 0 unless an invalid option is encountered, one of the names is not a valid shell variable name, or -f is supplied with a name that is not a function.
return [n] Causes a function to stop executing and return the value specified by n to its caller.  If n is omitted, the return status is that of the last command executed in the function body.  If return is executed by a trap handler, the last command used to determine the status is the last command executed before the trap handler.  If return is executed during a DEBUG trap, the last command used to determine the status is the last command executed by the trap handler before return was invoked.  If return is used outside a function, but during execution of a script by the .  (source) command, it causes the shell to stop executing that script and return either n or the exit status of the last command executed within the script as the exit status of the script.  If n is supplied, the return value is its least significant 8 bits.  The return status is non-zero if return is supplied a non-numeric argument, or is used outside a function and not during execution of a script by . or source.  Any command associated with the RETURN trap is executed before execution resumes after the function or script.
set [--abefhkmnptuvxBCEHPT] [-o option-name] [arg ...] set [+abefhkmnptuvxBCEHPT] [+o option-name] [arg ...] Without options, the name and value of each shell variable are displayed in a format that can be reused as input for setting or resetting the currently-set variables.  Read-only variables cannot be reset.  In posix mode, only shell variables are listed.  The output is sorted according to the current locale.  When options are specified, they set or unset shell attributes.  Any arguments remaining after option processing are treated as values for the positional parameters and are assigned, in order, to $1, $2, ... $n.  Options, if specified, have the following meanings: -a      Each variable or function that is created or modified is given the export attribute and marked for export to the environment of subsequent commands. -b      Report the status of terminated background jobs immediately, rather than before the next primary prompt. This is effective only when job control is enabled. -e      Exit immediately if a pipeline (which may consist of a single simple command), a list, or a compound command (see SHELL GRAMMAR above), exits with a non-zero status.  The shell does not exit if the command that fails is part of the command list immediately following a while or until keyword, part of the test following the if or elif reserved words, part of any command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is being inverted with !.  If a compound command other than a subshell returns a non-zero status because a command failed while -e was being ignored, the shell does not exit.  A trap on ERR, if set, is executed before the shell exits.  This option applies to the shell environment and each subshell environment separately (see COMMAND EXECUTION ENVIRONMENT above), and may cause subshells to exit before executing all the commands in the subshell.
The options are off by default unless otherwise noted.  Using + rather than - causes these options to be turned off.  The options can also be specified as arguments to an invocation of the shell. The current set of options may be found in $-.  The return status is always true unless an invalid option is encountered.
shift [n] The positional parameters from n+1 ... are renamed to $1 .... Parameters represented by the numbers $# down to $#-n+1 are unset. n must be a non-negative number less than or equal to $#.  If n is 0, no parameters are changed.  If n is not given, it is assumed to be 1.  If n is greater than $#, the positional parameters are not changed.  The return status is greater than zero if n is greater than $# or less than zero; otherwise 0.
shopt [-pqsu] [-o] [optname ...] Toggle the values of settings controlling optional shell behavior. The settings can be either those listed below, or, if the -o option is used, those available with the -o option to the set builtin command.  With no options, or with the -p option, a list of all settable options is displayed, with an indication of whether or not each is set; if optnames are supplied, the output is restricted to those options.  The -p option causes output to be displayed in a form that may be reused as input.  Other options have the following meanings: -s     Enable (set) each optname. -u     Disable (unset) each optname. -q     Suppresses normal output (quiet mode); the return status indicates whether the optname is set or unset.  If multiple optname arguments are given with -q, the return status is zero if all optnames are enabled; non-zero otherwise. -o     Restricts the values of optname to be those defined for the -o option to the set builtin.
If either -s or -u is used with no optname arguments, shopt shows only those options which are set or unset, respectively.  Unless otherwise noted, the shopt options are disabled (unset) by default.
The return status when listing options is zero if all optnames are enabled, non-zero otherwise.  When setting or unsetting options, the return status is zero unless an optname is not a valid shell option.
The list of shopt options is:
assoc_expand_once If set, the shell suppresses multiple evaluation of associative array subscripts during arithmetic expression evaluation, while executing builtins that can perform variable assignments, and while executing builtins that perform array dereferencing. autocd  If set, a command name that is the name of a directory is executed as if it were the argument to the cd command. This option is only used by interactive shells. cdable_vars If set, an argument to the cd builtin command that is not a directory is assumed to be the name of a variable whose value is the directory to change to. cdspell If set, minor errors in the spelling of a directory component in a cd command will be corrected.  The errors checked for are transposed characters, a missing character, and one character too many.  If a correction is found, the corrected filename is printed, and the command proceeds.  This option is only used by interactive shells. checkhash If set, bash checks that a command found in the hash table exists before trying to execute it.  If a hashed command no longer exists, a normal path search is performed. checkjobs If set, bash lists the status of any stopped and running jobs before exiting an interactive shell.  If any jobs are running, this causes the exit to be deferred until a second exit is attempted without an intervening command (see JOB CONTROL above).  The shell always postpones exiting if any jobs are stopped. checkwinsize If set, bash checks the window size after each external (non-builtin) command and, if necessary, updates the values of LINES and COLUMNS.  This option is enabled by default. cmdhist If set, bash attempts to save all lines of a multiple-line command in the same history entry.  This allows easy re- editing of multi-line commands.  This option is enabled by default, but only has an effect if command history is enabled, as described above under HISTORY. compat31 compat32 compat40 compat41 compat42 compat43 compat44 These control aspects of the shell's compatibility mode (see SHELL COMPATIBILITY MODE below).
complete_fullquote If set, bash quotes all shell metacharacters in filenames and directory names when performing completion.  If not set, bash removes metacharacters such as the dollar sign from the set of characters that will be quoted in completed filenames when these metacharacters appear in shell variable references in words to be completed.  This means that dollar signs in variable names that expand to directories will not be quoted; however, any dollar signs appearing in filenames will not be quoted, either.  This is active only when bash is using backslashes to quote completed filenames.  This variable is set by default, which is the default bash behavior in versions through 4.2.
direxpand If set, bash replaces directory names with the results of word expansion when performing filename completion.  This changes the contents of the readline editing buffer.  If not set, bash attempts to preserve what the user typed.
dirspell If set, bash attempts spelling correction on directory names during word completion if the directory name initially supplied does not exist.
dotglob If set, bash includes filenames beginning with a `.' in the results of pathname expansion.  The filenames ``.'' and ``..''  must always be matched explicitly, even if dotglob is set.
execfail If set, a non-interactive shell will not exit if it cannot execute the file specified as an argument to the exec builtin command.  An interactive shell does not exit if exec fails.
expand_aliases If set, aliases are expanded as described above under ALIASES.  This option is enabled by default for interactive shells.
extdebug If set at shell invocation, or in a shell startup file, arrange to execute the debugger profile before the shell starts, identical to the --debugger option.  If set after invocation, behavior intended for use by debuggers is enabled:
1.     The -F option to the declare builtin displays the source file name and line number corresponding to each function name supplied as an argument.
2.     If the command run by the DEBUG trap returns a non- zero value, the next command is skipped and not executed.
3.     If the command run by the DEBUG trap returns a value of 2, and the shell is executing in a subroutine (a shell function or a shell script executed by the . or source builtins), the shell simulates a call to return.
4.     BASH_ARGC and BASH_ARGV are updated as described in their descriptions above.
5.     Function tracing is enabled: command substitution, shell functions, and subshells invoked with ( command ) inherit the DEBUG and RETURN traps.
6.     Error tracing is enabled: command substitution, shell functions, and subshells invoked with ( command ) inherit the ERR trap.
extglob If set, the extended pattern matching features described above under Pathname Expansion are enabled.
extquote If set, $'string' and $"string" quoting is performed within ${parameter} expansions enclosed in double quotes. This option is enabled by default.
failglob If set, patterns which fail to match filenames during pathname expansion result in an expansion error.
force_fignore If set, the suffixes specified by the FIGNORE shell variable cause words to be ignored when performing word completion even if the ignored words are the only possible completions.  See SHELL VARIABLES above for a description of FIGNORE.  This option is enabled by default.
globasciiranges If set, range expressions used in pattern matching bracket expressions (see Pattern Matching above) behave as if in the traditional C locale when performing comparisons. That is, the current locale's collating sequence is not taken into account, so b will not collate between A and B, and upper-case and lower-case ASCII characters will collate together.
globstar If set, the pattern ** used in a pathname expansion context will match all files and zero or more directories and subdirectories.  If the pattern is followed by a /, only directories and subdirectories match.
gnu_errfmt If set, shell error messages are written in the standard GNU error message format.
histappend If set, the history list is appended to the file named by the value of the HISTFILE variable when the shell exits, rather than overwriting the file.
histreedit If set, and readline is being used, a user is given the opportunity to re-edit a failed history substitution.
histverify If set, and readline is being used, the results of history substitution are not immediately passed to the shell parser.  Instead, the resulting line is loaded into the readline editing buffer, allowing further modification.
hostcomplete If set, and readline is being used, bash will attempt to perform hostname completion when a word containing a @ is being completed (see Completing under READLINE above). This is enabled by default.
huponexit If set, bash will send SIGHUP to all jobs when an interactive login shell exits.
inherit_errexit If set, command substitution inherits the value of the errexit option, instead of unsetting it in the subshell environment.  This option is enabled when posix mode is enabled.
interactive_comments If set, allow a word beginning with # to cause that word and all remaining characters on that line to be ignored in an interactive shell (see COMMENTS above).  This option is enabled by default.
lastpipe If set, and job control is not active, the shell runs the last command of a pipeline not executed in the background in the current shell environment.
lithist If set, and the cmdhist option is enabled, multi-line commands are saved to the history with embedded newlines rather than using semicolon separators where possible.
localvar_inherit If set, local variables inherit the value and attributes of a variable of the same name that exists at a previous scope before any new value is assigned.  The nameref attribute is not inherited.
localvar_unset If set, calling unset on local variables in previous function scopes marks them so subsequent lookups find them unset until that function returns. This is identical to the behavior of unsetting local variables at the current function scope.
login_shell The shell sets this option if it is started as a login shell (see INVOCATION above).  The value may not be changed.
mailwarn If set, and a file that bash is checking for mail has been accessed since the last time it was checked, the message ``The mail in mailfile has been read'' is displayed.
no_empty_cmd_completion If set, and readline is being used, bash will not attempt to search the PATH for possible completions when completion is attempted on an empty line.
nocaseglob If set, bash matches filenames in a case-insensitive fashion when performing pathname expansion (see Pathname Expansion above).
nocasematch If set, bash matches patterns in a case-insensitive fashion when performing matching while executing case or [[ conditional commands, when performing pattern substitution word expansions, or when filtering possible completions as part of programmable completion.
nullglob If set, bash allows patterns which match no files (see Pathname Expansion above) to expand to a null string, rather than themselves.
progcomp If set, the programmable completion facilities (see Programmable Completion above) are enabled.  This option is enabled by default.
progcomp_alias If set, and programmable completion is enabled, bash treats a command name that doesn't have any completions as a possible alias and attempts alias expansion. If it has an alias, bash attempts programmable completion using the command word resulting from the expanded alias.
promptvars If set, prompt strings undergo parameter expansion, command substitution, arithmetic expansion, and quote removal after being expanded as described in PROMPTING above.  This option is enabled by default.
restricted_shell The shell sets this option if it is started in restricted mode (see RESTRICTED SHELL below).  The value may not be changed.  This is not reset when the startup files are executed, allowing the startup files to discover whether or not a shell is restricted.
shift_verbose If set, the shift builtin prints an error message when the shift count exceeds the number of positional parameters.
sourcepath If set, the source (.) builtin uses the value of PATH to find the directory containing the file supplied as an argument.  This option is enabled by default.
xpg_echo If set, the echo builtin expands backslash-escape sequences by default.
suspend [-f] Suspend the execution of this shell until it receives a SIGCONT signal.  A login shell cannot be suspended; the -f option can be used to override this and force the suspension.  The return status is 0 unless the shell is a login shell and -f is not supplied, or if job control is not enabled.
test expr [ expr ] Return a status of 0 (true) or 1 (false) depending on the evaluation of the conditional expression expr.  Each operator and operand must be a separate argument.  Expressions are composed of the primaries described above under CONDITIONAL EXPRESSIONS.  test does not accept any options, nor does it accept and ignore an argument of -- as signifying the end of options.
Expressions may be combined using the following operators, listed in decreasing order of precedence.  The evaluation depends on the number of arguments; see below.  Operator precedence is used when there are five or more arguments. ! expr True if expr is false. ( expr ) Returns the value of expr.  This may be used to override the normal precedence of operators. expr1 -a expr2 True if both expr1 and expr2 are true. expr1 -o expr2 True if either expr1 or expr2 is true.
test and [ evaluate conditional expressions using a set of rules based on the number of arguments.
0 arguments The expression is false. 1 argument The expression is true if and only if the argument is not null. 2 arguments If the first argument is !, the expression is true if and only if the second argument is null.  If the first argument is one of the unary conditional operators listed above under CONDITIONAL EXPRESSIONS, the expression is true if the unary test is true.  If the first argument is not a valid unary conditional operator, the expression is false. 3 arguments The following conditions are applied in the order listed. If the second argument is one of the binary conditional operators listed above under CONDITIONAL EXPRESSIONS, the result of the expression is the result of the binary test using the first and third arguments as operands.  The -a and -o operators are considered binary operators when there are three arguments.  If the first argument is !, the value is the negation of the two-argument test using the second and third arguments.  If the first argument is exactly ( and the third argument is exactly ), the result is the one- argument test of the second argument.  Otherwise, the expression is false. 4 arguments If the first argument is !, the result is the negation of the three-argument expression composed of the remaining arguments.  Otherwise, the expression is parsed and evaluated according to precedence using the rules listed above. 5 or more arguments The expression is parsed and evaluated according to precedence using the rules listed above.
When used with test or [, the < and > operators sort lexicographically using ASCII ordering.
trap [-lp] [[arg] sigspec ...] The command arg is to be read and executed when the shell receives signal(s) sigspec.  If arg is absent (and there is a single sigspec) or -, each specified signal is reset to its original disposition (the value it had upon entrance to the shell).  If arg is the null string the signal specified by each sigspec is ignored by the shell and by the commands it invokes.  If arg is not present and -p has been supplied, then the trap commands associated with each sigspec are displayed.  If no arguments are supplied or if only -p is given, trap prints the list of commands associated with each signal.  The -l option causes the shell to print a list of signal names and their corresponding numbers. Each sigspec is either a signal name defined in <signal.h>, or a signal number.  Signal names are case insensitive and the SIG prefix is optional.
If a sigspec is EXIT (0) the command arg is executed on exit from the shell.  If a sigspec is DEBUG, the command arg is executed before every simple command, for command, case command, select command, every arithmetic for command, and before the first command executes in a shell function (see SHELL GRAMMAR above). Refer to the description of the extdebug option to the shopt builtin for details of its effect on the DEBUG trap.  If a sigspec is RETURN, the command arg is executed each time a shell function or a script executed with the . or source builtins finishes executing.
If a sigspec is ERR, the command arg is executed whenever a pipeline (which may consist of a single simple command), a list, or a compound command returns a non-zero exit status, subject to the following conditions.  The ERR trap is not executed if the failed command is part of the command list immediately following a while or until keyword, part of the test in an if statement, part of a command executed in a && or || list except the command following the final && or ||, any command in a pipeline but the last, or if the command's return value is being inverted using !. These are the same conditions obeyed by the errexit (-e) option.
Signals ignored upon entry to the shell cannot be trapped or reset.  Trapped signals that are not being ignored are reset to their original values in a subshell or subshell environment when one is created.  The return status is false if any sigspec is invalid; otherwise trap returns true.
type [-aftpP] name [name ...] With no options, indicate how each name would be interpreted if used as a command name.  If the -t option is used, type prints a string which is one of alias, keyword, function, builtin, or file if name is an alias, shell reserved word, function, builtin, or disk file, respectively.  If the name is not found, then nothing is printed, and an exit status of false is returned.  If the -p option is used, type either returns the name of the disk file that would be executed if name were specified as a command name, or nothing if ``type -t name'' would not return file.  The -P option forces a PATH search for each name, even if ``type -t name'' would not return file.  If a command is hashed, -p and -P print the hashed value, which is not necessarily the file that appears first in PATH.  If the -a option is used, type prints all of the places that contain an executable named name.  This includes aliases and functions, if and only if the -p option is not also used.  The table of hashed commands is not consulted when using -a.  The -f option suppresses shell function lookup, as with the command builtin.  type returns true if all of the arguments are found, false if any are not found.
ulimit [-HS] -a ulimit [-HS] [-bcdefiklmnpqrstuvxPRT [limit]] Provides control over the resources available to the shell and to processes started by it, on systems that allow such control.  The -H and -S options specify that the hard or soft limit is set for the given resource.  A hard limit cannot be increased by a non- root user once it is set; a soft limit may be increased up to the value of the hard limit.  If neither -H nor -S is specified, both the soft and hard limits are set.  The value of limit can be a number in the unit specified for the resource or one of the special values hard, soft, or unlimited, which stand for the current hard limit, the current soft limit, and no limit, respectively.  If limit is omitted, the current value of the soft limit of the resource is printed, unless the -H option is given. When more than one resource is specified, the limit name and unit, if appropriate, are printed before the value.  Other options are interpreted as follows: -a     All current limits are reported; no limits are set -b     The maximum socket buffer size -c     The maximum size of core files created -d     The maximum size of a process's data segment -e     The maximum scheduling priority ("nice") -f     The maximum size of files written by the shell and its children -i     The maximum number of pending signals -k     The maximum number of kqueues that may be allocated -l     The maximum size that may be locked into memory -m     The maximum resident set size (many systems do not honor this limit) -n     The maximum number of open file descriptors (most systems do not allow this value to be set) -p     The pipe size in 512-byte blocks (this may not be set) -q     The maximum number of bytes in POSIX message queues -r     The maximum real-time scheduling priority -s     The maximum stack size -t     The maximum amount of cpu time in seconds -u     The maximum number of processes available to a single user -v     The maximum amount of virtual memory available to the shell and, on some systems, to its children -x     The maximum number of file locks -P     The maximum number of pseudoterminals -R     The maximum time a real-time process can run before blocking, in microseconds -T     The maximum number of threads
If limit is given, and the -a option is not used, limit is the new value of the specified resource.  If no option is given, then -f is assumed.  Values are in 1024-byte increments, except for -t, which is in seconds; -R, which is in microseconds; -p, which is in units of 512-byte blocks; -P, -T, -b, -k, -n, and -u, which are unscaled values; and, when in posix mode, -c and -f, which are in 512-byte increments.  The return status is 0 unless an invalid option or argument is supplied, or an error occurs while setting a new limit.
umask [-p] [-S] [mode] The user file-creation mask is set to mode.  If mode begins with a digit, it is interpreted as an octal number; otherwise it is interpreted as a symbolic mode mask similar to that accepted by chmod(1).  If mode is omitted, the current value of the mask is printed.  The -S option causes the mask to be printed in symbolic form; the default output is an octal number.  If the -p option is supplied, and mode is omitted, the output is in a form that may be reused as input.  The return status is 0 if the mode was successfully changed or if no mode argument was supplied, and false otherwise.
unalias [-a] [name ...] Remove each name from the list of defined aliases.  If -a is supplied, all alias definitions are removed.  The return value is true unless a supplied name is not a defined alias.
unset [-fv] [-n] [name ...] For each name, remove the corresponding variable or function.  If the -v option is given, each name refers to a shell variable, and that variable is removed.  Read-only variables may not be unset. If -f is specified, each name refers to a shell function, and the function definition is removed.  If the -n option is supplied, and name is a variable with the nameref attribute, name will be unset rather than the variable it references.  -n has no effect if the -f option is supplied.  If no options are supplied, each name refers to a variable; if there is no variable by that name, a function with that name, if any, is unset.  Each unset variable or function is removed from the environment passed to subsequent commands.  If any of BASH_ALIASES, BASH_ARGV0, BASH_CMDS, BASH_COMMAND, BASH_SUBSHELL, BASHPID, COMP_WORDBREAKS, DIRSTACK, EPOCHREALTIME, EPOCHSECONDS, FUNCNAME, GROUPS, HISTCMD, LINENO, RANDOM, SECONDS, or SRANDOM are unset, they lose their special properties, even if they are subsequently reset.  The exit status is true unless a name is readonly.
wait [-fn] [-p varname] [id ...] Wait for each specified child process and return its termination status.  Each id may be a process ID or a job specification; if a job spec is given, all processes in that job's pipeline are waited for.  If id is not given, wait waits for all running background jobs and the last-executed process substitution, if its process id is the same as $!, and the return status is zero.  If the -n option is supplied, wait waits for a single job from the list of ids or, if no ids are supplied, any job, to complete and returns its exit status.  If none of the supplied arguments is a child of the shell, or if no arguments are supplied and the shell has no unwaited-for children, the exit status is 127.  If the -p option is supplied, the process or job identifier of the job for which the exit status is returned is assigned to the variable varname named by the option argument.  The variable will be unset initially, before any assignment.  This is useful only when the -n option is supplied.  Supplying the -f option, when job control is enabled, forces wait to wait for id to terminate before returning its status, instead of returning when it changes status.  If id specifies a non-existent process or job, the return status is 127. Otherwise, the return status is the exit status of the last process or job waited for.
Bash-4.0 introduced the concept of a `shell compatibility level', specified as a set of options to the shopt builtin compat31, compat32, compat40, compat41, and so on).  There is only one current compatibility level -- each option is mutually exclusive.  The compatibility level is intended to allow users to select behavior from previous versions that is incompatible with newer versions while they migrate scripts to use current features and behavior. It's intended to be a temporary solution.
This section does not mention behavior that is standard for a particular version (e.g., setting compat32 means that quoting the rhs of the regexp matching operator quotes special regexp characters in the word, which is default behavior in bash-3.2 and above).
If a user enables, say, compat32, it may affect the behavior of other compatibility levels up to and including the current compatibility level. The idea is that each compatibility level controls behavior that changed in that version of bash, but that behavior may have been present in earlier versions.  For instance, the change to use locale-based comparisons with the [[ command came in bash-4.1, and earlier versions used ASCII-based comparisons, so enabling compat32 will enable ASCII- based comparisons as well.  That granularity may not be sufficient for all uses, and as a result users should employ compatibility levels carefully.  Read the documentation for a particular feature to find out the current behavior.
Bash-4.3 introduced a new shell variable: BASH_COMPAT.  The value assigned to this variable (a decimal version number like 4.2, or an integer corresponding to the compatNN option, like 42) determines the compatibility level.
Starting with bash-4.4, Bash has begun deprecating older compatibility levels.  Eventually, the options will be removed in favor of BASH_COMPAT.
Bash-5.0 is the final version for which there will be an individual shopt option for the previous version. Users should use BASH_COMPAT on bash-5.0 and later versions.
The following table describes the behavior changes controlled by each compatibility level setting.  The compatNN tag is used as shorthand for setting the compatibility level to NN using one of the following mechanisms.  For versions prior to bash-5.0, the compatibility level may be set using the corresponding compatNN shopt option.  For bash-4.3 and later versions, the BASH_COMPAT variable is preferred, and it is required for bash-5.1 and later versions.
compat31 •      quoting the rhs of the [[ command's regexp matching operator (=~) has no special effect
compat32 •      interrupting a command list such as "a ; b ; c" causes the execution of the next command in the list (in bash-4.0 and later versions, the shell acts as if it received the interrupt, so interrupting one command in a list aborts the execution of the entire list)
compat40 •      the < and > operators to the [[ command do not consider the current locale when comparing strings; they use ASCII ordering.  Bash versions prior to bash-4.1 use ASCII collation and strcmp(3); bash-4.1 and later use the current locale's collation sequence and strcoll(3).
compat41 •      in posix mode, time may be followed by options and still be recognized as a reserved word (this is POSIX interpretation 267) •      in posix mode, the parser requires that an even number of single quotes occur in the word portion of a double-quoted parameter expansion and treats them specially, so that characters within the single quotes are considered quoted (this is POSIX interpretation 221)
compat42 •      the replacement string in double-quoted pattern substitution does not undergo quote removal, as it does in versions after bash-4.2 •      in posix mode, single quotes are considered special when expanding the word portion of a double-quoted parameter expansion and can be used to quote a closing brace or other special character (this is part of POSIX interpretation 221); in later versions, single quotes are not special within double-quoted word expansions
compat43 •      the shell does not print a warning message if an attempt is made to use a quoted compound assignment as an argument to declare (declare -a foo='(1 2)'). Later versions warn that this usage is deprecated •      word expansion errors are considered non-fatal errors that cause the current command to fail, even in posix mode (the default behavior is to make them fatal errors that cause the shell to exit) •      when executing a shell function, the loop state (while/until/etc.)  is not reset, so break or continue in that function will break or continue loops in the calling context. Bash-4.4 and later reset the loop state to prevent this
compat44 •      the shell sets up the values used by BASH_ARGV and BASH_ARGC so they can expand to the shell's positional parameters even if extended debugging mode is not enabled •      a subshell inherits loops from its parent context, so break or continue will cause the subshell to exit.  Bash-5.0 and later reset the loop state to prevent the exit •      variable assignments preceding builtins like export and readonly that set attributes continue to affect variables with the same name in the calling environment even if the shell is not in posix mode
compat50 •      Bash-5.1 changed the way $RANDOM is generated to introduce slightly more randomness. If the shell compatibility level is set to 50 or lower, it reverts to the method from bash-5.0 and previous versions, so seeding the random number generator by assigning a value to RANDOM will produce the same sequence as in bash-5.0 •      If the command hash table is empty, bash versions prior to bash-5.1 printed an informational message to that effect, even when producing output that can be reused as input. Bash-5.1 suppresses that message when the -l option is supplied.
If bash is started with the name rbash, or the -r option is supplied at invocation, the shell becomes restricted.  A restricted shell is used to set up an environment more controlled than the standard shell.  It behaves identically to bash with the exception that the following are disallowed or not performed:
•      changing directories with cd
•      setting or unsetting the values of SHELL, PATH, HISTFILE, ENV, or BASH_ENV
•      specifying a filename containing a / as an argument to the . builtin command
•      specifying a filename containing a slash as an argument to the history builtin command
•      specifying a filename containing a slash as an argument to the -p option to the hash builtin command
•      importing function definitions from the shell environment at startup
•      parsing the value of SHELLOPTS from the shell environment at startup
•      redirecting output using the >, >|, <>, >&, &>, and >> redirection operators
•      adding or deleting builtin commands with the -f and -d options to the enable builtin command
•      using the enable builtin command to enable disabled shell builtins
•      specifying the -p option to the command builtin command
•      turning off restricted mode with set +r or set +o restricted.
These restrictions are enforced after any startup files are read.
When a command that is found to be a shell script is executed (see COMMAND EXECUTION above), rbash turns off any restrictions in the shell spawned to execute the script.
Bash Reference Manual, Brian Fox and Chet Ramey The Gnu Readline Library, Brian Fox and Chet Ramey The Gnu History Library, Brian Fox and Chet Ramey Portable Operating System Interface (POSIX) Part 2: Shell and Utilities, IEEE -- http://pubs.opengroup.org/onlinepubs/9699919799/ http://tiswww.case.edu/~chet/bash/POSIX -- a description of posix mode sh(1), ksh(1), csh(1) emacs(1), vi(1) readline(3)
/bin/bash The bash executable /etc/profile The systemwide initialization file, executed for login shells ~/.bash_profile The personal initialization file, executed for login shells ~/.bashrc The individual per-interactive-shell startup file ~/.bash_logout The individual login shell cleanup file, executed when a login shell exits ~/.inputrc Individual readline initialization file
Brian Fox, Free Software Foundation bfox@gnu.org
Chet Ramey, Case Western Reserve University chet.ramey@case.edu
If you find a bug in bash, you should report it.  But first, you should make sure that it really is a bug, and that it appears in the latest version of bash.  The latest version is always available from ftp://ftp.gnu.org/pub/gnu/bash/.
Once you have determined that a bug actually exists, use the bashbug command to submit a bug report.  If you have a fix, you are encouraged to mail that as well!  Suggestions and `philosophical' bug reports may be mailed to bug-bash@gnu.org or posted to the Usenet newsgroup gnu.bash.bug.
ALL bug reports should include:
The version number of bash The hardware and operating system The compiler used to compile A description of the bug behaviour A short script or `recipe' which exercises the bug
bashbug inserts the first three items automatically into the template it provides for filing a bug report.
Comments and bug reports concerning this manual page should be directed to chet.ramey@case.edu.
It's too big and too slow.
There are some subtle differences between bash and traditional versions of sh, mostly because of the POSIX specification.
Aliases are confusing in some uses.
Shell builtin commands and functions are not stoppable/restartable.
Compound commands and command sequences of the form `a ; b ; c' are not handled gracefully when process suspension is attempted.  When a process is stopped, the shell immediately executes the next command in the sequence.  It suffices to place the sequence of commands between parentheses to force it into a subshell, which may be stopped as a unit.
Array variables may not (yet) be exported.
There may be only one active coprocess at a time.
QTCHOOSER(1)                 General Commands Manual                QTCHOOSER(1)
qtchooser - a wrapper used to select between Qt development binary versions
qtchooser -list-versions qtchooser -print-env [-qt=version] qtchooser -run-tool=tool [-qt=version] [program_arguments] <executable_name> [-qt=version] [program_arguments]
Qt is a cross-platform C++ application framework. Qt's primary feature is its rich set of widgets that provide standard GUI functionality.
The Qt Chooser provides a wrapper to switch between versions of Qt development binaries when multiple versions like 4 and 5 are installed or local Qt builds are to be used.
It is commonly used via a symlink from an executable_name like qmake.
The options which apply to the qtchooser command are:
-list-versions Lists available Qt versions from the configuration files
-print-env Prints environment information
-qt=version Selects version as the Qt version to be used
-run-tool=tool Runs the selected tool.
QTCHOOSER_NO_GLOBAL_DIR If qtchooser has been built with QTCHOOSER_GLOBAL_DIR (predefined search paths for qtchooser's configuration files, useful in some distros), setting this variable will override its effect.
QT_SELECT Same as -qt=version. If set, the selected configuration is used and binaries symlinked to qtchooser will be executed without additional parameters.
XDG_CONFIG_HOME
XDG_CONFIG_DIRS Used as specified in <http://standards.freedesktop.org/basedir- spec/basedir-spec-latest.html>
/etc/xdg/qtchooser/*.conf System-wide configuration files. Each has two lines, the first is the path to the binaries and the second is the path to the Qt libraries. If a default.conf is provided, the settings from it will be automatically used in case nothing else is selected.
$HOME/.config/qtchooser/*.conf User configuration files.
qtchooser was written by Thiago Macieira from Intel.
This manual page was written by Timo Jyrinki <timo@debian.org>, for the Debian project (but may be used by others).
OCRMYPDF(1)                       User Commands                      OCRMYPDF(1)
ocrmypdf - add an OCR text layer to PDF files
usage: ocrmypdf [-h] [-l LANGUAGE] [--image-dpi DPI]
[--output-type {pdfa,pdf,pdfa-1,pdfa-2,pdfa-3}] [--sidecar [FILE]] [--version] [-j N] [-q] [-v [VERBOSE]] [--title TITLE] [--author AUTHOR] [--subject SUBJECT] [--keywords KEYWORDS] [-r] [--remove-background] [-d] [-c] [-i] [--oversample DPI] [--remove-vectors] [--mask-barcodes] [--threshold] [-f] [-s] [--redo-ocr] [--skip-big MPixels] [-O {0,1,2,3}] [--jpeg-quality Q] [--png-quality Q] [--jbig2-lossy] [--max-image-mpixels MPixels] [--tesseract-config CFG] [--tesseract-pagesegmode PSM] [--tesseract-oem MODE] [--pdf-renderer {auto,hocr,sandwich}] [--tesseract-timeout SECONDS] [--rotate-pages-threshold CONFIDENCE] [--pdfa-image-compression {auto,jpeg,lossless}] [--user-words FILE] [--user-patterns FILE] [-k] [--flowchart FLOWCHART] input_pdf_or_image output_pdf
Generates a searchable PDF or PDF/A from a regular PDF.
OCRmyPDF rasterizes each page of the input PDF, optionally corrects page rotation and performs image processing, runs the Tesseract OCR engine on the image, and then creates a PDF from the OCR information.
positional arguments: input_pdf_or_image PDF file containing the images to be OCRed (or '-' to read from standard input)
output_pdf Output searchable PDF file (or '-' to write to standard output). Existing files will be ovewritten.  If same as input file, the input file will be updated only if processing is successful.
-l LANGUAGE, --language LANGUAGE Language(s) of the file to be OCRed (see tesseract --list-langs for all language packs installed in your system). Use -l eng+deu for multiple languages.
--image-dpi DPI For input image instead of PDF, use this DPI instead of file's.
--output-type {pdfa,pdf,pdfa-1,pdfa-2,pdfa-3} Choose output type. 'pdfa' creates a PDF/A-2b compliant file for long term archiving (default, recommended) but may not suitable for users who want their file altered as little as possible. 'pdfa' also has problems with full Unicode text. 'pdf' attempts to preserve file contents as much as possible. 'pdf-a1' creates a PDF/A1-b file. 'pdf-a2' is equivalent to 'pdfa'. 'pdf-a3' creates a PDF/A3-b file.
--sidecar [FILE] Generate sidecar text files that contain the same text recognized by Tesseract. This may be useful for building a OCR text database. If FILE is omitted, the sidecar file be named {output_file}.txt If FILE is set to '-', the sidecar is written to stdout (a convenient way to preview OCR quality). The output file and sidecar may not both use stdout at the same time.
Job control options: -j N, --jobs N Use up to N CPU cores simultaneously (default: use all).
-q, --quiet Suppress INFO messages
-v [VERBOSE], --verbose [VERBOSE] Print more verbose messages for each additional verbose level
Metadata options: Set output PDF/A metadata (default: copy input document's metadata)
--title TITLE Set document title (place multiple words in quotes)
--author AUTHOR Set document author
--subject SUBJECT Set document subject description
--keywords KEYWORDS Set document keywords
Image preprocessing options: Options to improve the quality of the final PDF and OCR
-r, --rotate-pages Automatically rotate pages based on detected text orientation
--remove-background Attempt to remove background from gray or color pages, setting it to white
-d, --deskew Deskew each page before performing OCR
-c, --clean Clean pages from scanning artifacts before performing OCR, and send the cleaned page to OCR, but do not include the cleaned page in the output
-i, --clean-final Clean page as above, and incorporate the cleaned image in the final PDF. Might remove desired content.
--oversample DPI Oversample images to at least the specified DPI, to improve OCR results slightly
--remove-vectors EXPERIMENTAL. Mask out any vector objects in the PDF so that they will not be included in OCR. This can eliminate false characters.
--mask-barcodes EXPERIMENTAL. Mask out any barcodes that appear in the PDF so they are not considered during OCR. Barcodes can introduce false characters into OCR.
--threshold EXPERIMENTAL. Threshold image to 1bpp before sending it to Tesseract for OCR. Can improve OCR quality compared to Tesseract's thresholder.
OCR options: Control how OCR is applied
-f, --force-ocr Rasterize any text or vector objects on each page, apply OCR, and save the rastered output (this rewrites the PDF)
-s, --skip-text Skip OCR on any pages that already contain text, but include the page in final output; useful for PDFs that contain a mix of images, text pages, and/or previously OCRed pages
--redo-ocr Attempt to detect and remove the hidden OCR layer from files that were previously OCRed with OCRmyPDF or another program. Apply OCR to text found in raster images. Existing visible text objects will not be changed. If there is no existing OCR, OCR will be added.
--skip-big MPixels Skip OCR on pages larger than the specified amount of megapixels, but include skipped pages in final output
Optimization options: Control how the PDF is optimized after OCR
-O {0,1,2,3}, --optimize {0,1,2,3} Control how PDF is optimized after processing:0 - do not optimize; 1 - do safe, lossless optimizations (default); 2 - do some lossy optimizations; 3 - do aggressive lossy optimizations (including lossy JBIG2)
--jpeg-quality Q Adjust JPEG quality level for JPEG optimization. 100 is best quality and largest output size; 1 is lowest quality and smallest output; 0 uses the default.
--png-quality Q Adjust PNG quality level to use when quantizing PNGs.  Values have same meaning as with --jpeg-quality
--jbig2-lossy Enable JBIG2 lossy mode (better compression, not suitable for some use cases - see documentation).
Advanced: Advanced options to control Tesseract's OCR behavior
--max-image-mpixels MPixels Set maximum number of pixels to unpack before treating an image as a decompression bomb
--tesseract-config CFG Additional Tesseract configuration files -- see documentation
--tesseract-pagesegmode PSM Set Tesseract page segmentation mode (see tesseract --help)
--tesseract-oem MODE Set Tesseract 4.0 OCR engine mode: 0 - original Tesseract only; 1 - neural nets LSTM only; 2 - Tesseract + LSTM; 3 - default.
--pdf-renderer {auto,hocr,sandwich} Choose OCR PDF renderer - the default option is to let OCRmyPDF choose. See documentation for discussion.
--tesseract-timeout SECONDS Give up on OCR after the timeout, but copy the preprocessed page into the final output
--rotate-pages-threshold CONFIDENCE Only rotate pages when confidence is above this value (arbitrary units reported by tesseract)
--pdfa-image-compression {auto,jpeg,lossless} Specify how to compress images in the output PDF/A.  'auto' lets OCRmyPDF decide. 'jpeg' changes all grayscale and color images to JPEG compression.  'lossless' uses PNG-style lossless compression for all images. Monochrome images are always compressed using a lossless codec. Compression settings are applied to all pages, including those for which OCR was skipped.  Not supported for --output-type=pdf ; that setting preserves the original compression of all images.
--user-words FILE Specify the location of the Tesseract user words file.  This is a list of words Tesseract should consider while performing OCR in addition to its standard language dictionaries. This can improve OCR quality especially for specialized and technical documents.
--user-patterns FILE Specify the location of the Tesseract user patterns file.
Debugging: Arguments to help with troubleshooting and debugging
-k, --keep-temporary-files Keep temporary files (helpful for debugging)
--flowchart FLOWCHART Generate the pipeline execution flowchart
OCRmyPDF attempts to keep the output file at about the same size.  If a file contains losslessly compressed images, and output file will be losslessly compressed as well.