The functionality in the entire EXTENDED DESCRIPTION section
shall be provided on implementations supporting the User
Portability Utilities option. The functionality described in
this section shall be provided on implementations that support
the User Portability Utilities option (and the rest of this
section is not further shaded for this option).
The mailx utility need not support for all character encodings in
all circumstances. For example, inter-system mail may be
restricted to 7-bit data by the underlying network, 8-bit data
need not be portable to non-internationalized systems, and so on.
Under these circumstances, it is recommended that only characters
defined in the ISO/IEC 646:1991 standard International Reference
Version (equivalent to ASCII) 7-bit range of characters be used.
When mailx is invoked using one of the Receive Mode synopsis
forms, it shall write a page of header-summary lines (if -N
was
not specified and there are messages, see below), followed by a
prompt indicating that mailx can accept regular commands (see
Commands in mailx); this is termed command mode. The page of
header-summary lines shall contain the first new message if there
are new messages, or the first unread message if there are unread
messages, or the first message. When mailx is invoked using the
Send Mode synopsis and standard input is a terminal, if no
subject is specified on the command line and the asksub
variable
is set, a prompt for the subject shall be written. At this point,
mailx shall be in input mode. This input mode shall also be
entered when using one of the Receive Mode synopsis forms and a
reply or new message is composed using the reply
, Reply
,
followup
, Followup
, or mail
commands and standard input is a
terminal. When the message is typed and the end of the message is
encountered, the message shall be passed to the mail delivery
software. Commands can be entered by beginning a line with the
escape character (by default, <tilde> ('~'
)) followed by a single
command letter and optional arguments. See Commands in mailx for
a summary of these commands. It is unspecified what effect these
commands will have if standard input is not a terminal when a
message is entered using either the Send Mode synopsis, or the
Read Mode commands reply
, Reply
, followup
, Followup
, or mail
.
Note:
For notational convenience, this section uses the default
escape character, <tilde>, in all references and examples.
At any time, the behavior of mailx shall be governed by a set of
environmental and internal variables. These are flags and valued
parameters that can be set and cleared via the mailx set
and
unset
commands.
Regular commands are of the form:
[
command] [
msglist] [
argument ...]
If no command is specified in command mode, next
shall be
assumed. In input mode, commands shall be recognized by the
escape character, and lines not treated as commands shall be
taken as input for the message.
In command mode, each message shall be assigned a sequential
number, starting with 1.
All messages have a state that shall affect how they are
displayed in the header summary and how they are retained or
deleted upon termination of mailx. There is at any time the
notion of a current message, which shall be marked by a '>'
at
the beginning of a line in the header summary. When mailx is
invoked using one of the Receive Mode synopsis forms, the current
message shall be the first new message, if there is a new
message, or the first unread message if there is an unread
message, or the first message if there are any messages, or
unspecified if there are no messages in the mailbox. Each command
that takes an optional list of messages (msglist) or an optional
single message (message) on which to operate shall leave the
current message set to the highest-numbered message of the
messages specified, unless the command deletes messages, in which
case the current message shall be set to the first undeleted
message (that is, a message not in the deleted state) after the
highest-numbered message deleted by the command, if one exists,
or the first undeleted message before the highest-numbered
message deleted by the command, if one exists, or to an
unspecified value if there are no remaining undeleted messages.
All messages shall be in one of the following states:
new The message is present in the system mailbox and has
not been viewed by the user or moved to any other
state. Messages in state new when mailx quits shall be
retained in the system mailbox.
unread The message has been present in the system mailbox for
more than one invocation of mailx and has not been
viewed by the user or moved to any other state.
Messages in state unread when mailx quits shall be
retained in the system mailbox.
read The message has been processed by one of the following
commands: ~f
, ~m
, ~F
, ~M
, copy
, mbox
, next
, pipe
,
print
, Print
, top
, type
, Type
, undelete
. The delete
,
dp
, and dt
commands may also cause the next message to
be marked as read, depending on the value of the
autoprint
variable. Messages that are in the system
mailbox and in state read when mailx quits shall be
saved in the mbox
, unless the internal variable hold
was set. Messages that are in the mbox
or in a
secondary mailbox and in state read when mailx quits
shall be retained in their current location.
deleted The message has been processed by one of the following
commands: delete
, dp
, dt
. Messages in state deleted
when mailx quits shall be deleted. Deleted messages
shall be ignored until mailx quits or changes mailboxes
or they are specified to the undelete command; for
example, the message specification /string shall only
search the subject lines of messages that have not yet
been deleted, unless the command operating on the list
of messages is undelete
. No deleted message or deleted
message header shall be displayed by any mailx command
other than undelete
.
preserved The message has been processed by a preserve
command.
When mailx quits, the message shall be retained in its
current location.
saved The message has been processed by one of the following
commands: save
or write
. If the current mailbox is the
system mailbox, and the internal variable keepsave
is
set, messages in the state saved shall be saved to the
file designated by the MBOX variable (see the
ENVIRONMENT VARIABLES section). If the current mailbox
is the system mailbox, messages in the state saved
shall be deleted from the current mailbox, when the
quit
or file
command is used to exit the current
mailbox.
The header-summary line for each message shall indicate the state
of the message.
Many commands take an optional list of messages (msglist) on
which to operate, which defaults to the current message. A
msglist is a list of message specifications separated by <blank>
characters, which can include:
n Message number n.
+ The next undeleted message, or the next deleted message
for the undelete
command.
- The next previous undeleted message, or the next previous
deleted message for the undelete
command.
. The current message.
^ The first undeleted message, or the first deleted message
for the undelete
command.
$ The last message.
* All messages.
n‐m An inclusive range of message numbers.
address All messages from address; any address as shown in a
header summary shall be matchable in this form.
/string All messages with string in the subject line (case
ignored).
:c All messages of type c, where c shall be one of:
d Deleted messages.
n New messages.
o Old messages (any not in state read or new).
r Read messages.
u Unread messages.
Other commands take an optional message (message) on which to
operate, which defaults to the current message. All of the forms
allowed for msglist are also allowed for message, but if more
than one message is specified, only the first shall be operated
on.
Other arguments are usually arbitrary strings whose usage depends
on the command involved.
Start-Up in mailx
At start-up time, mailx shall take the following steps in
sequence:
1. Establish all variables at their stated default values.
2. Process command line options, overriding corresponding
default values.
3. Import any of the DEAD, EDITOR, MBOX, LISTER, PAGER, SHELL,
or VISUAL variables that are present in the environment,
overriding the corresponding default values.
4. Read mailx commands from an unspecified system start-up file,
unless the -n
option is given, to initialize any internal
mailx variables and aliases.
5. Process the user start-up file of mailx commands named in the
user MAILRC variable.
Most regular mailx commands are valid inside start-up files, the
most common use being to set up initial display options and alias
lists. The following commands shall be invalid in a start-up
file: !
, edit
, hold
, mail
, preserve
, reply
, Reply
, shell
, visual
,
Copy
, followup
, and Followup
. Any errors in a start-up file
shall either cause mailx to terminate with a diagnostic message
and a non-zero status or to continue after writing a diagnostic
message, ignoring the remainder of the lines in the file.
A blank line in a start-up file shall be ignored.
Internal Variables in mailx
The following variables are internal mailx variables. Each
internal variable can be set via the mailx set
command at any
time. The unset
and set no
name commands can be used to erase
variables.
In the following list, variables shown as:
variable
represent Boolean values. Variables shown as:
variable=value
shall be assigned string or numeric values. For string values,
the rules in Commands in mailx concerning filenames and quoting
shall also apply.
The defaults specified here may be changed by the unspecified
system start-up file unless the user specifies the -n
option.
allnet
All network names whose login name components match
shall be treated as identical. This shall cause the
msglist message specifications to behave similarly. The
default shall be noallnet
. See also the alternates
command and the metoo
variable.
append
Append messages to the end of the mbox
file upon
termination instead of placing them at the beginning.
The default shall be noappend
. This variable shall not
affect the save
command when saving to mbox
.
ask
, asksub
Prompt for a subject line on outgoing mail if one is
not specified on the command line with the -s
option.
The ask
and asksub
forms are synonyms; the system shall
refer to asksub
and noasksub
in its messages, but shall
accept ask
and noask
as user input to mean asksub
and
noasksub
. It shall not be possible to set both ask
and
noasksub
, or noask
and asksub
. The default shall be
asksub
, but no prompting shall be done if standard
input is not a terminal.
askbcc
Prompt for the blind copy list. The default shall be
noaskbcc
.
askcc
Prompt for the copy list. The default shall be noaskcc
.
autoprint
Enable automatic writing of messages after delete
and
undelete
commands. The default shall be noautoprint
.
bang
Enable the special-case treatment of <exclamation-mark>
characters ('!'
) in escape command lines; see the
escape
command and Command Escapes in mailx. The
default shall be nobang
, disabling the expansion of '!'
in the command argument to the ~!
command and the
~<!
command escape.
cmd
=command
Set the default command to be invoked by the pipe
command. The default shall be nocmd
.
crt
=number
Pipe messages having more than number lines through the
command specified by the value of the PAGER variable.
The default shall be nocrt
. If it is set to null, the
value used is implementation-defined.
debug
Enable verbose diagnostics for debugging. Messages are
not delivered. The default shall be nodebug
.
dot
When dot
is set, a <period> on a line by itself during
message input from a terminal shall also signify end-
of-file (in addition to normal end-of-file). The
default shall be nodot
. If ignoreeof
is set (see
below), a setting of nodot
shall be ignored and the
<period> is the only method to terminate input mode.
escape
=c Set the command escape character to be the character
'c'
. By default, the command escape character shall be
<tilde>. If escape
is unset, <tilde> shall be used; if
it is set to null, command escaping shall be disabled.
flipr
Reverse the meanings of the R
and r
commands. The
default shall be noflipr
.
folder
=directory
The default directory for saving mail files. User-
specified filenames beginning with a <plus-sign> ('+'
)
shall be expanded by preceding the filename with this
directory name to obtain the real pathname. If
directory does not start with a <slash> ('/'
), the
contents of HOME shall be prefixed to it. The default
shall be nofolder
. If folder
is unset or set to null,
user-specified filenames beginning with '+'
shall refer
to files in the current directory that begin with the
literal '+'
character. See also outfolder
below. The
folder
value need not affect the processing of the
files named in MBOX and DEAD.
header
Enable writing of the header summary when entering
mailx in Receive Mode. The default shall be header
.
hold
Preserve all messages that are read in the system
mailbox instead of putting them in the mbox
save file.
The default shall be nohold
.
ignore
Ignore interrupts while entering messages. The default
shall be noignore
.
ignoreeof
Ignore normal end-of-file during message input. Input
can be terminated only by entering a <period> ('.'
) on
a line by itself or by the ~.
command escape. The
default shall be noignoreeof
. See also dot
above.
indentprefix
=string
A string that shall be added as a prefix to each line
that is inserted into the message by the ~m
command
escape. This variable shall default to one <tab>.
keep
When a system mailbox, secondary mailbox, or mbox
is
empty, truncate it to zero length instead of removing
it. The default shall be nokeep
.
keepsave
Keep the messages that have been saved from the system
mailbox into other files in the file designated by the
variable MBOX, instead of deleting them. The default
shall be nokeepsave
.
metoo
Suppress the deletion of the login name of the user
from the recipient list when replying to a message or
sending to a group. The default shall be nometoo
.
onehop
When responding to a message that was originally sent
to several recipients, the other recipient addresses
are normally forced to be relative to the originating
author's machine for the response. This flag disables
alteration of the recipients' addresses, improving
efficiency in a network where all machines can send
directly to all other machines (that is, one hop away).
The default shall be noonehop
.
outfolder
Cause the files used to record outgoing messages to be
located in the directory specified by the folder
variable unless the pathname is absolute. The default
shall be nooutfolder
. See the record
variable.
page
Insert a <form-feed> after each message sent through
the pipe created by the pipe
command. The default shall
be nopage
.
prompt
=string
Set the command-mode prompt to string. If string is
null or if noprompt
is set, no prompting shall occur.
The default shall be to prompt with the string "? "
.
quiet
Refrain from writing the opening message and version
when entering mailx. The default shall be noquiet
.
record
=file
Record all outgoing mail in the file with the pathname
file. The default shall be norecord
. See also
outfolder
above.
save
Enable saving of messages in the dead-letter file on
interrupt or delivery error. See the variable DEAD for
the location of the dead-letter file. The default shall
be save
.
screen
=number
Set the number of lines in a screenful of headers for
the headers
and z
commands. If screen
is not specified,
a value based on the terminal type identified by the
TERM environment variable, the window size, the baud
rate, or some combination of these shall be used.
sendwait
Wait for the background mailer to finish before
returning. The default shall be nosendwait
.
showto
When the sender of the message was the user who is
invoking mailx, write the information from the To:
line
instead of the From:
line in the header summary. The
default shall be noshowto
.
sign
=string
Set the variable inserted into the text of a message
when the ~a
command escape is given. The default shall
be nosign
. The character sequences '\t'
and '\n'
shall
be recognized in the variable as <tab> and <newline>
characters, respectively. (See also ~i
in Command
Escapes in mailx.)
Sign
=string
Set the variable inserted into the text of a message
when the ~A
command escape is given. The default shall
be noSign
. The character sequences '\t'
and '\n'
shall
be recognized in the variable as <tab> and <newline>
characters, respectively.
toplines
=number
Set the number of lines of the message to write with
the top
command. The default shall be 5.
Commands in mailx
The following mailx commands shall be provided. In the following
list, header refers to lines from the message header, as shown in
the OUTPUT FILES section. Header-line refers to lines within the
header that begin with one or more non-white-space characters,
immediately followed by a <colon> and white space and continuing
until the next line beginning with a non-white-space character or
an empty line. Header-field refers to the portion of a header
line prior to the first <colon> in that line.
For each of the commands listed below, the command can be entered
as the abbreviation (those characters in the Synopsis command
word preceding the '['
), the full command (all characters shown
for the command word, omitting the '['
and ']'
), or any
truncation of the full command down to the abbreviation. For
example, the exit
command (shown as ex[it]
in the Synopsis) can
be entered as ex
, exi
, or exit
.
The arguments to commands can be quoted, using the following
methods:
* An argument can be enclosed between paired double-quotes (""
)
or single-quotes (''
); any white space, shell word expansion,
or <backslash> characters within the quotes shall be treated
literally as part of the argument. A double-quote shall be
treated literally within single-quotes and vice versa. These
special properties of the <quotation-mark> characters shall
occur only when they are paired at the beginning and end of
the argument.
* A <backslash> outside of the enclosing quotes shall be
discarded and the following character treated literally as
part of the argument.
* An unquoted <backslash> at the end of a command line shall be
discarded and the next line shall continue the command.
Filenames, where expected, shall be subjected to the following
transformations, in sequence:
* If the filename begins with an unquoted <plus-sign>, and the
folder
variable is defined (see the folder
variable), the
<plus-sign> shall be replaced by the value of the folder
variable followed by a <slash>. If the folder
variable is
unset or is set to null, the filename shall be unchanged.
* Shell word expansions shall be applied to the filename (see
Section 2.6, Word Expansions). If more than a single
pathname results from this expansion and the command is
expecting one file, the effects are unspecified.
Declare Aliases
Synopsis:
a[
lias] [
alias [
address...]]
g[
roup] [
alias [
address...]]
Add the given addresses to the alias specified by alias. The
names shall be substituted when alias is used as a recipient
address specified by the user in an outgoing message (that is,
other recipients addressed indirectly through the reply
command
shall not be substituted in this manner). Mail address alias
substitution shall apply only when the alias string is used as a
full address; for example, when hlj
is an alias, hlj@posix.com
does not trigger the alias substitution. If no arguments are
given, write a listing of the current aliases to standard output.
If only an alias argument is given, write a listing of the
specified alias to standard output. These listings need not
reflect the same order of addresses that were entered.
Declare Alternatives
Synopsis:
alt[
ernates]
name...
(See also the metoo
variable.) Declare a list of alternative
names for the user's login. When responding to a message, these
names shall be removed from the list of recipients for the
response. The comparison of names shall be in a case-insensitive
manner. With no arguments, alternates
shall write the current
list of alternative names.
Change Current Directory
Synopsis:
cd [
directory]
ch[
dir] [
directory]
Change directory. If directory is not specified, the contents of
HOME shall be used.
Copy Messages
Synopsis:
c[
opy] [
file]
c[
opy] [
msglist]
file
C[
opy] [
msglist]
Copy messages to the file named by the pathname file without
marking the messages as saved. Otherwise, it shall be equivalent
to the save
command.
In the capitalized form, save the specified messages in a file
whose name is derived from the author of the message to be saved,
without marking the messages as saved. Otherwise, it shall be
equivalent to the Save
command.
Delete Messages
Synopsis:
d[
elete] [
msglist]
Mark messages for deletion from the mailbox. The deletions shall
not occur until mailx quits (see the quit
command) or changes
mailboxes (see the folder
command). If autoprint
is set and there
are messages remaining after the delete
command, the current
message shall be written as described for the print
command (see
the print
command); otherwise, the mailx prompt shall be written.
Discard Header Fields
Synopsis:
di[
scard] [
header-field...]
ig[
nore] [
header-field...]
Suppress the specified header fields when writing messages.
Specified header-fields shall be added to the list of suppressed
header fields. Examples of header fields to ignore are status
and
cc
. The fields shall be included when the message is saved. The
Print
and Type
commands shall override this command. The
comparison of header fields shall be in a case-insensitive
manner. If no arguments are specified, write a list of the
currently suppressed header fields to standard output; the
listing need not reflect the same order of header fields that
were entered.
If both retain
and discard
commands are given, discard
commands
shall be ignored.
Delete Messages and Display
Synopsis:
dp [
msglist]
dt [
msglist]
Delete the specified messages as described for the delete
command, except that the autoprint
variable shall have no effect,
and the current message shall be written only if it was set to a
message after the last message deleted by the command. Otherwise,
an informational message to the effect that there are no further
messages in the mailbox shall be written, followed by the mailx
prompt.
Echo a String
Synopsis:
ec[
ho]
string ...
Echo the given strings, equivalent to the shell echo utility.
Edit Messages
Synopsis:
e[
dit] [
msglist]
Edit the given messages. The messages shall be placed in a
temporary file and the utility named by the EDITOR variable is
invoked to edit each file in sequence. The default EDITOR is
unspecified.
The edit
command does not modify the contents of those messages
in the mailbox.
Exit
Synopsis:
ex[
it]
x[
it]
Exit from mailx without changing the mailbox. No messages shall
be saved in the mbox
(see also quit
).
Change Folder
Synopsis:
fi[
le] [
file]
fold[
er] [
file]
Quit (see the quit
command) from the current file of messages and
read in the file named by the pathname file. If no argument is
given, the name and status of the current mailbox shall be
written.
Several unquoted special characters shall be recognized when used
as file names, with the following substitutions:
% The system mailbox for the invoking user.
%user The system mailbox for user.
# The previous file.
& The current mbox
.
+file The named file in the folder
directory. (See the folder
variable.)
The default file shall be the current mailbox.
Display List of Folders
Synopsis:
folders
Write the names of the files in the directory set by the folder
variable. The command specified by the LISTER environment
variable shall be used (see the ENVIRONMENT VARIABLES section).
Follow Up Specified Messages
Synopsis:
fo[
llowup] [
message]
F[
ollowup] [
msglist]
In the lowercase form, respond to a message, recording the
response in a file whose name is derived from the author of the
message. See also the save
and copy
commands and outfolder
.
In the capitalized form, respond to the first message in the
msglist, sending the message to the author of each message in the
msglist. The subject line shall be taken from the first message
and the response shall be recorded in a file whose name is
derived from the author of the first message. See also the Save
and Copy
commands and outfolder
.
Both forms shall override the record
variable, if set.
Display Header Summary for Specified Messages
Synopsis:
f[
rom] [
msglist]
Write the header summary for the specified messages.
Display Header Summary
Synopsis:
h[
eaders] [
message]
Write the page of headers that includes the message specified. If
the message argument is not specified, the current message shall
not change. However, if the message argument is specified, the
current message shall become the message that appears at the top
of the page of headers that includes the message specified. The
screen
variable sets the number of headers per page. See also the
z
command.
Help
Synopsis:
hel[
p]
?
Write a summary of commands.
Hold Messages
Synopsis:
ho[
ld] [
msglist]
pre[
serve] [
msglist]
Mark the messages in msglist to be retained in the mailbox when
mailx terminates. This shall override any commands that might
previously have marked the messages to be deleted. During the
current invocation of mailx, only the delete
, dp
, or dt
commands
shall remove the preserve marking of a message.
Execute Commands Conditionally
Synopsis:
i[
f]
s|r
mail-commands
el[
se]
mail-commands
en[
dif]
Execute commands conditionally, where if s
executes the following
mail-commands, up to an else
or endif
, if the program is in Send
Mode, and if r
shall cause the mail-commands to be executed only
in Receive Mode.
List Available Commands
Synopsis:
l[
ist]
Write a list of all commands available. No explanation shall be
given.
Mail a Message
Synopsis:
m[
ail]
address...
Mail a message to the specified addresses or aliases.
Direct Messages to mbox
Synopsis:
mb[
ox] [
msglist]
Arrange for the given messages to end up in the mbox
save file
when mailx terminates normally. See MBOX. See also the exit
and
quit
commands.
Process Next Specified Message
Synopsis:
n[
ext] [
message]
If the current message has not been written (for example, by the
print
command) since mailx started or since any other message was
the current message, behave as if the print
command was entered.
Otherwise, if there is an undeleted message after the current
message, make it the current message and behave as if the print
command was entered. Otherwise, an informational message to the
effect that there are no further messages in the mailbox shall be
written, followed by the mailx prompt. Should the current message
location be the result of an immediately preceding hold
, mbox
,
preserve
, or touch
command, next
will act as if the current
message has already been written.
Pipe Message
Synopsis:
pi[
pe] [[
msglist]
command]
| [[
msglist]
command]
Pipe the messages through the given command by invoking the
command interpreter specified by SHELL with two arguments: -c
and
command. (See also sh -c
.) The application shall ensure that
the command is given as a single argument. Quoting, described
previously, can be used to accomplish this. If no arguments are
given, the current message shall be piped through the command
specified by the value of the cmd
variable. If the page
variable
is set, a <form-feed> shall be inserted after each message.
Display Message with Headers
Synopsis:
P[
rint] [
msglist]
T[
ype] [
msglist]
Write the specified messages, including all header lines, to
standard output. Override suppression of lines by the discard
,
ignore
, and retain
commands. If crt
is set, the messages longer
than the number of lines specified by the crt
variable shall be
paged through the command specified by the PAGER environment
variable.
Display Message
Synopsis:
p[
rint] [
msglist]
t[
ype] [
msglist]
Write the specified messages to standard output. If crt
is set,
the messages longer than the number of lines specified by the crt
variable shall be paged through the command specified by the
PAGER environment variable.
Quit
Synopsis:
q[
uit]
end-of-file
Terminate mailx, storing messages that were read in mbox
(if the
current mailbox is the system mailbox and unless hold
is set),
deleting messages that have been explicitly saved (unless
keepsave
is set), discarding messages that have been deleted, and
saving all remaining messages in the mailbox.
Reply to a Message List
Synopsis:
R[
eply] [
msglist]
R[
espond] [
msglist]
Mail a reply message to the sender of each message in the
msglist. The subject line shall be formed by concatenating
Re:
<space> (unless it already begins with that string) and the
subject from the first message. If record
is set to a filename,
the response shall be saved at the end of that file.
See also the flipr
variable.
Reply to a Message
Synopsis:
r[
eply] [
message]
r[
espond] [
message]
Mail a reply message to all recipients included in the header of
the message. The subject line shall be formed by concatenating
Re:
<space> (unless it already begins with that string) and the
subject from the message. If record
is set to a filename, the
response shall be saved at the end of that file.
See also the flipr
variable.
Retain Header Fields
Synopsis:
ret[
ain] [
header-field...]
Retain the specified header fields when writing messages. This
command shall override all discard
and ignore
commands. The
comparison of header fields shall be in a case-insensitive
manner. If no arguments are specified, write a list of the
currently retained header fields to standard output; the listing
need not reflect the same order of header fields that were
entered.
Save Messages
Synopsis:
s[
ave] [
file]
s[
ave] [
msglist]
file
S[
ave] [
msglist]
Save the specified messages in the file named by the pathname
file, or the mbox
if the file argument is omitted. The file shall
be created if it does not exist; otherwise, the messages shall be
appended to the file. The message shall be put in the state
saved, and shall behave as specified in the description of the
saved state when the current mailbox is exited by the quit
or
file
command.
In the capitalized form, save the specified messages in a file
whose name is derived from the author of the first message. The
name of the file shall be taken to be the author's name with all
network addressing stripped off. See also the Copy
, followup
, and
Followup
commands and outfolder
variable.
Set Variables
Synopsis:
se[
t] [
name[
=[
string]]
...] [
name=number ...] [
noname ...]
Define one or more variables called name. The variable can be
given a null, string, or numeric value. Quoting and
<backslash>-escapes can occur anywhere in string, as described
previously, as if the string portion of the argument were the
entire argument. The forms name and name= shall be equivalent to
name="" for variables that take string values. The set
command
without arguments shall write a list of all defined variables and
their values. The no
name form shall be equivalent to unset
name.
Invoke a Shell
Synopsis:
sh[
ell]
Invoke an interactive command interpreter (see also SHELL).
Display Message Size
Synopsis:
si[
ze] [
msglist]
Write the size in bytes of each of the specified messages.
Read mailx Commands From a File
Synopsis:
so[
urce]
file
Read and execute commands from the file named by the pathname
file and return to command mode.
Display Beginning of Messages
Synopsis:
to[
p] [
msglist]
Write the top few lines of each of the specified messages. If the
toplines
variable is set, it is taken as the number of lines to
write. The default shall be 5.
Touch Messages
Synopsis:
tou[
ch] [
msglist]
Touch the specified messages. If any message in msglist is not
specifically deleted nor saved in a file, it shall be placed in
the mbox
upon normal termination. See exit
and quit
.
Delete Aliases
Synopsis:
una[
lias] [
alias]
...
Delete the specified alias names. If a specified alias does not
exist, the results are unspecified.
Undelete Messages
Synopsis:
u[
ndelete] [
msglist]
Change the state of the specified messages from deleted to read.
If autoprint
is set, the last message of those restored shall be
written. If msglist is not specified, the message shall be
selected as follows:
* If there are any deleted messages that follow the current
message, the first of these shall be chosen.
* Otherwise, the last deleted message that also precedes the
current message shall be chosen.
Unset Variables
Synopsis:
uns[
et]
name...
Cause the specified variables to be erased.
Edit Message with Full-Screen Editor
Synopsis:
v[
isual] [
msglist]
Edit the given messages with a screen editor. Each message shall
be placed in a temporary file, and the utility named by the
VISUAL variable shall be invoked to edit each file in sequence.
The default editor shall be vi.
The visual
command does not modify the contents of those messages
in the mailbox.
Write Messages to a File
Synopsis:
w[
rite] [
msglist]
file
Write the given messages to the file specified by the pathname
file, minus the message header. Otherwise, it shall be equivalent
to the save
command.
Scroll Header Display
Synopsis:
z[
+|-]
Scroll the header display forward (if '+'
is specified or if no
option is specified) or backward (if '-'
is specified) one
screenful. The number of headers written shall be set by the
screen
variable.
Invoke Shell Command
Synopsis:
!command
Invoke the command interpreter specified by SHELL with two
arguments: -c
and command. (See also sh -c
.) If the bang
variable is set, each unescaped occurrence of '!'
in command
shall be replaced with the command executed by the previous !
command or ~!
command escape.
Null Command
Synopsis:
# comment
This null command (comment) shall be ignored by mailx.
Display Current Message Number
Synopsis:
=
Write the current message number.
Command Escapes in mailx
The following commands can be entered only from input mode, by
beginning a line with the escape character (by default, <tilde>
('~'
)). See the escape
variable description for changing this
special character. The format for the commands shall be:
<escape-character><command-char><separator>[
<arguments>]
where the <separator> can be zero or more <blank> characters.
In the following descriptions, the application shall ensure that
the argument command (but not mailx-command) is a shell command
string. Any string acceptable to the command interpreter
specified by the SHELL variable when it is invoked as SHELL -c
command_string shall be valid. The command can be presented as
multiple arguments (that is, quoting is not required).
Command escapes that are listed with msglist or mailx-command
arguments are invalid in Send Mode and produce unspecified
results.
~!
command
Invoke the command interpreter specified by SHELL with
two arguments: -c
and command; and then return to input
mode. If the bang
variable is set, each unescaped
occurrence of '!'
in command shall be replaced with
the command executed by the previous !
command or ~!
command escape.
~.
Simulate end-of-file (terminate message input).
~:
mailx-command, ~_
mailx-command
Perform the command-level request.
~?
Write a summary of command escapes.
~A
This shall be equivalent to ~i Sign
.
~a
This shall be equivalent to ~i sign
.
~b
name...
Add the names to the blind carbon copy (Bcc
) list.
~c
name...
Add the names to the carbon copy (Cc
) list.
~d
Read in the dead-letter file. See DEAD for a
description of this file.
~e
Invoke the editor, as specified by the EDITOR
environment variable, on the partial message.
~f [
msglist]
Forward the specified messages. The specified messages
shall be inserted into the current message without
alteration. This command escape also shall insert
message headers into the message with field selection
affected by the discard
, ignore
, and retain
commands.
~F [
msglist]
This shall be the equivalent of the ~f
command escape,
except that all headers shall be included in the
message, regardless of previous discard
, ignore
, and
retain
commands.
~h
If standard input is a terminal, prompt for a Subject
line and the To
, Cc
, and Bcc
lists. Other
implementation-defined headers may also be presented
for editing. If the field is written with an initial
value, it can be edited as if it had just been typed.
~i
string Insert the value of the named variable, followed by a
<newline>, into the text of the message. If the string
is unset or null, the message shall not be changed.
~m [
msglist]
Insert the specified messages into the message,
prefixing non-empty lines with the string in the
indentprefix
variable. This command escape also shall
insert message headers into the message, with field
selection affected by the discard
, ignore
, and retain
commands.
~M [
msglist]
This shall be the equivalent of the ~m
command escape,
except that all headers shall be included in the
message, regardless of previous discard
, ignore
, and
retain
commands.
~p
Write the message being entered. If the message is
longer than crt
lines (see Internal Variables in
mailx), the output shall be paginated as described for
the PAGER variable.
~q
Quit (see the quit
command) from input mode by
simulating an interrupt. If the body of the message is
not empty, the partial message shall be saved in the
dead-letter file. See DEAD for a description of this
file.
~r
file, ~<
file, ~r !
command, ~< !
command
Read in the file specified by the pathname file. If
the argument begins with an <exclamation-mark> ('!'
),
the rest of the string shall be taken as an arbitrary
system command; the command interpreter specified by
SHELL shall be invoked with two arguments: -c
and
command. The standard output of command shall be
inserted into the message.
~s
string Set the subject line to string.
~t
name...
Add the given names to the To
list.
~v
Invoke the full-screen editor, as specified by the
VISUAL environment variable, on the partial message.
~w
file Write the partial message, without the header, onto the
file named by the pathname file. The file shall be
created or the message shall be appended to it if the
file exists.
~x
Exit as with ~q
, except the message shall not be saved
in the dead-letter file.
~|
command
Pipe the body of the message through the given command
by invoking the command interpreter specified by SHELL
with two arguments: -c
and command. If the command
returns a successful exit status, the standard output
of the command shall replace the message. Otherwise,
the message shall remain unchanged. If the command
fails, an error message giving the exit status shall be
written.