sh-posix.1 (2010 09)

s
sh-posix(1) sh-posix(1)
Background processes started from a noninteractive shell cannot be accessed with job control commands.
The value of the
IFS variable in the user’s environment affects the behavior of scripts.
Collating Order
In an international environment, character ordering is determined by the value of
LC_COLLATE
,rather
than by the binary ordering of character values in the machine collating sequence. This brings with it
certain attendant dangers, particularly when using range expressions in file name generation patterns.
For example, the command,
rm [a-z]*
might be expected to match all file names beginning with a lowercase alphabetic character. However, if
dictionary ordering is specified by
LC_COLLATE
, it would also match file names beginning with an
uppercase character (as well as those beginning with accented letters). Conversely, it would fail to match
letters collated after
z in languages such as Danish or Norwegian.
The correct (and safe) way to match specific character classes in an international environment is to use a
pattern (see regexp (5)) of the form:
rm [[:lower:]]*
This uses LC_CTYPE to determine character classes and works predictably for all supported languages
and codesets. For shell scripts produced on noninternationalized systems (or without consideration for
the above dangers), it is recommended that they be executed in a non-NLS environment. This requires
that LANG, LC_COLLATE, and so on, be set to C or not set at all.
History File and Locales
The history file does not support mixing of locales in the same file. For users of multiple locales, you can
assign a unique history file for each locale by setting
HISTFILE as:
HISTFILE=$HOME/.sh_hist_${LANG}
On encountering a history file with invalid characters for the current locale setting, the shell will inform
the user about it and continue processing user input. No history features will be available to the user in
such a session. Restarting the shell after setting a new history file or after removing the current history
file allows the user to access the history features.
Here-Document Temp Files
The contents of here-documents are stored in temporary files named
/var/tmp/shpid.number. Usu-
ally, these temporary files are removed after they are used. However, due to design limitations, these
temporary files may sometimes continue to exist after the shell exits. pid is the process ID of the shell.
number is a sequence number for the here-document files.
AUTHOR
sh was developed by AT&T, OSF, and HP.
FILES
$HOME/.profile Read to set up user’s custom environment
/etc/passwd To find home directories
/etc/profile Read to set up system environment
/etc/suid_profile Security profile
/sbin/sh Archived executable, especially for root access
/tmp/shpid.number For here-documents if /var/tmp is not accessible
/usr/bin/sh Standard executable for the POSIX shell
/var/tmp/shpid.number For here-documents if /var/tmp is accessible
SEE ALSO
cat(1), cd(1), command(1), echo(1), ed(1), env(1), getopts(1), kill(1), ln(1), login(1), newgrp(1), printf(1),
pwd(1), read(1), stty(1), test(1), time(1), umask(1), vi(1), dup(2), exec(2), fork(2), pipe(2), stty(2), ulimit(2),
umask(2), wait(2), rand(3C), a.out(4), profile(4), environ(5), lang(5), regexp(5), signal(5), standards(5).
STANDARDS CONFORMANCE
sh: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2
.: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2
:: SVID2, SVID3, XPG2, XPG3, XPG4, POSIX.2
HP-UX 11i Version 3: September 2010 27 Hewlett-Packard Company 27