logo

oasis-root

Compiled tree of Oasis Linux based on own branch at <https://hacktivis.me/git/oasis/> git clone https://anongit.hacktivis.me/git/oasis-root.git

at.1p (21915B)


  1. '\" et
  2. .TH AT "1P" 2017 "IEEE/The Open Group" "POSIX Programmer's Manual"
  3. .\"
  4. .SH PROLOG
  5. This manual page is part of the POSIX Programmer's Manual.
  6. The Linux implementation of this interface may differ (consult
  7. the corresponding Linux manual page for details of Linux behavior),
  8. or the interface may not be implemented on Linux.
  9. .\"
  10. .SH NAME
  11. at
  12. \(em execute commands at a later time
  13. .SH SYNOPSIS
  14. .LP
  15. .nf
  16. at \fB[\fR-m\fB] [\fR-f \fIfile\fB] [\fR-q \fIqueuename\fB] \fR-t \fItime_arg\fR
  17. .P
  18. at \fB[\fR-m\fB] [\fR-f \fIfile\fB] [\fR-q \fIqueuename\fB] \fItimespec\fR...
  19. .P
  20. at -r \fIat_job_id\fR...
  21. .P
  22. at -l -q \fIqueuename\fR
  23. .P
  24. at -l \fB[\fIat_job_id\fR...\fB]\fR
  25. .fi
  26. .SH DESCRIPTION
  27. The
  28. .IR at
  29. utility shall read commands from standard input and group them together
  30. as an
  31. .IR at-job ,
  32. to be executed at a later time.
  33. .P
  34. The at-job shall be executed in a separate invocation of the shell,
  35. running in a separate process group with no controlling terminal,
  36. except that the environment variables, current working directory,
  37. file creation mask, and other implementation-defined execution-time
  38. attributes in effect when the
  39. .IR at
  40. utility is executed shall be retained and used when the at-job is
  41. executed.
  42. .P
  43. When the at-job is submitted, the
  44. .IR at_job_id
  45. and scheduled time shall be written to standard error. The
  46. .IR at_job_id
  47. is an identifier that shall be a string consisting solely of
  48. alphanumeric characters and the
  49. <period>
  50. character. The
  51. .IR at_job_id
  52. shall be assigned by the system when the job is scheduled such that it
  53. uniquely identifies a particular job.
  54. .P
  55. User notification and the processing of the job's standard output and
  56. standard error are described under the
  57. .BR \-m
  58. option.
  59. .P
  60. Users shall be permitted to use
  61. .IR at
  62. if their name appears in the file
  63. .BR at.allow
  64. which is located in an implementation-defined directory.
  65. If that file does not exist, the file
  66. .BR at.deny ,
  67. which is located in an implementation-defined directory,
  68. shall be checked to determine whether the user shall be denied access to
  69. .IR at .
  70. If neither file exists, only a process with appropriate privileges
  71. shall be allowed to submit a job. If only
  72. .BR at.deny
  73. exists and is empty, global usage shall be permitted. The
  74. .BR at.allow
  75. and
  76. .BR at.deny
  77. files shall consist of one user name per line.
  78. .SH OPTIONS
  79. The
  80. .IR at
  81. utility shall conform to the Base Definitions volume of POSIX.1\(hy2017,
  82. .IR "Section 12.2" ", " "Utility Syntax Guidelines".
  83. .P
  84. The following options shall be supported:
  85. .IP "\fB\-f\ \fIfile\fR" 10
  86. Specify the pathname of a file to be used as the source of the at-job,
  87. instead of standard input.
  88. .IP "\fB\-l\fP" 10
  89. (The letter ell.) Report all jobs scheduled for the invoking user if no
  90. .IR at_job_id
  91. operands are specified. If
  92. .IR at_job_id s
  93. are specified, report only information for these jobs. The output shall
  94. be written to standard output.
  95. .IP "\fB\-m\fP" 10
  96. Send mail to the invoking user after the at-job has run, announcing its
  97. completion. Standard output and standard error produced by the at-job
  98. shall be mailed to the user as well, unless redirected elsewhere. Mail
  99. shall be sent even if the job produces no output.
  100. .RS 10
  101. .P
  102. If
  103. .BR \-m
  104. is not used, the job's standard output and standard error shall be
  105. provided to the user by means of mail, unless they are redirected
  106. elsewhere; if there is no such output to provide, the implementation
  107. need not notify the user of the job's completion.
  108. .RE
  109. .IP "\fB\-q\ \fIqueuename\fR" 10
  110. .br
  111. Specify in which queue to schedule a job for submission. When used with
  112. the
  113. .BR \-l
  114. option, limit the search to that particular queue. By default, at-jobs
  115. shall be scheduled in queue
  116. .IR a .
  117. In contrast, queue
  118. .IR b
  119. shall be reserved for batch jobs; see
  120. .IR batch .
  121. The meanings of all other
  122. .IR queuename s
  123. are implementation-defined. If
  124. .BR \-q
  125. is specified along with either of the
  126. .BR \-t
  127. .IR time_arg
  128. or
  129. .IR timespec
  130. arguments, the results are unspecified.
  131. .IP "\fB\-r\fP" 10
  132. Remove the jobs with the specified
  133. .IR at_job_id
  134. operands that were previously scheduled by the
  135. .IR at
  136. utility.
  137. .IP "\fB\-t\ \fItime_arg\fR" 10
  138. Submit the job to be run at the time specified by the
  139. .IR time
  140. option-argument, which the application shall ensure has the format as
  141. specified by the
  142. .IR touch
  143. .BR \-t
  144. .IR time
  145. utility.
  146. .SH OPERANDS
  147. The following operands shall be supported:
  148. .IP "\fIat_job_id\fR" 10
  149. The name reported by a previous invocation of the
  150. .IR at
  151. utility at the time the job was scheduled.
  152. .IP "\fItimespec\fR" 10
  153. Submit the job to be run at the date and time specified. All of the
  154. .IR timespec
  155. operands are interpreted as if they were separated by
  156. <space>
  157. characters and concatenated, and shall be parsed as described in the
  158. grammar at the end of this section. The date and time shall be interpreted
  159. as being in the timezone of the user (as determined by the
  160. .IR TZ
  161. variable), unless a timezone name appears as part of
  162. .IR time ,
  163. below.
  164. .RS 10
  165. .P
  166. In the POSIX locale, the following describes the three parts of the
  167. time specification string. All of the values from the
  168. .IR LC_TIME
  169. categories in the POSIX locale shall be recognized in a
  170. case-insensitive manner.
  171. .IP "\fItime\fR" 10
  172. The time can be specified as one, two, or four digits. One-digit and
  173. two-digit numbers shall be taken to be hours; four-digit numbers to be
  174. hours and minutes. The time can alternatively be specified as two
  175. numbers separated by a
  176. <colon>,
  177. meaning \fIhour\fP:\fIminute\fR. An AM/PM indication (one of the values
  178. from the
  179. .BR am_pm
  180. keywords in the
  181. .IR LC_TIME
  182. locale category) can follow the time; otherwise, a 24-hour clock time
  183. shall be understood. A timezone name can also follow to further qualify
  184. the time. The acceptable timezone names are implementation-defined,
  185. except that they shall be case-insensitive and the string
  186. .BR utc
  187. is supported to indicate the time is in Coordinated Universal Time.
  188. In the POSIX locale, the
  189. .IR time
  190. field can also be one of the following tokens:
  191. .RS 10
  192. .IP "\fBmidnight\fR" 10
  193. Indicates the time 12:00 am (00:00).
  194. .IP "\fBnoon\fR" 10
  195. Indicates the time 12:00 pm.
  196. .IP "\fBnow\fR" 10
  197. Indicates the current day and time. Invoking
  198. .IR at
  199. <\fBnow\fR> shall submit an at-job for potentially immediate execution
  200. (that is, subject only to unspecified scheduling delays).
  201. .RE
  202. .IP "\fIdate\fR" 10
  203. An optional
  204. .IR date
  205. can be specified as either a month name (one of the values from the
  206. .BR mon
  207. or
  208. .BR abmon
  209. keywords in the
  210. .IR LC_TIME
  211. locale category) followed by a day number (and possibly year number
  212. preceded by a comma), or a day of the week (one of the values from the
  213. .BR day
  214. or
  215. .BR abday
  216. keywords in the
  217. .IR LC_TIME
  218. locale category). In the POSIX locale, two special days shall be
  219. recognized:
  220. .RS 10
  221. .IP "\fBtoday\fR" 10
  222. Indicates the current day.
  223. .IP "\fBtomorrow\fR" 10
  224. Indicates the day following the current day.
  225. .P
  226. If no
  227. .IR date
  228. is given,
  229. .BR today
  230. shall be assumed if the given time is greater than the current time,
  231. and
  232. .BR tomorrow
  233. shall be assumed if it is less. If the given month is less than the
  234. current month (and no year is given), next year shall be assumed.
  235. .RE
  236. .IP "\fIincrement\fR" 10
  237. The optional
  238. .IR increment
  239. shall be a number preceded by a
  240. <plus-sign>
  241. (\c
  242. .BR '\(pl' )
  243. and suffixed by one of the following:
  244. .BR minutes ,
  245. .BR hours ,
  246. .BR days ,
  247. .BR weeks ,
  248. .BR months ,
  249. or
  250. .BR years .
  251. (The singular forms shall also be accepted.) The keyword
  252. .BR next
  253. shall be equivalent to an increment number of +1. For example, the
  254. following are equivalent commands:
  255. .RS 10
  256. .sp
  257. .RS 4
  258. .nf
  259. at 2pm + 1 week
  260. at 2pm next week
  261. .fi
  262. .P
  263. .RE
  264. .RE
  265. .RE
  266. .P
  267. The following grammar describes the precise format of
  268. .IR timespec
  269. in the POSIX locale. The general conventions for this style of grammar
  270. are described in
  271. .IR "Section 1.3" ", " "Grammar Conventions".
  272. This formal syntax shall take precedence over the preceding text syntax
  273. description. The longest possible token or delimiter shall be
  274. recognized at a given point. When used in a
  275. .IR timespec ,
  276. white space shall also delimit tokens.
  277. .sp
  278. .RS 4
  279. .nf
  280. %token hr24clock_hr_min
  281. %token hr24clock_hour
  282. /*
  283. An hr24clock_hr_min is a one, two, or four-digit number. A one-digit
  284. or two-digit number constitutes an hr24clock_hour. An hr24clock_hour
  285. may be any of the single digits [0,9], or may be double digits, ranging
  286. from [00,23]. If an hr24clock_hr_min is a four-digit number, the
  287. first two digits shall be a valid hr24clock_hour, while the last two
  288. represent the number of minutes, from [00,59].
  289. */
  290. .P
  291. %token wallclock_hr_min
  292. %token wallclock_hour
  293. /*
  294. A wallclock_hr_min is a one, two-digit, or four-digit number.
  295. A one-digit or two-digit number constitutes a wallclock_hour.
  296. A wallclock_hour may be any of the single digits [1,9], or may
  297. be double digits, ranging from [01,12]. If a wallclock_hr_min
  298. is a four-digit number, the first two digits shall be a valid
  299. wallclock_hour, while the last two represent the number of
  300. minutes, from [00,59].
  301. */
  302. .P
  303. %token minute
  304. /*
  305. A minute is a one or two-digit number whose value can be [0,9]
  306. or [00,59].
  307. */
  308. .P
  309. %token day_number
  310. /*
  311. A day_number is a number in the range appropriate for the particular
  312. month and year specified by month_name and year_number, respectively.
  313. If no year_number is given, the current year is assumed if the given
  314. date and time are later this year. If no year_number is given and
  315. the date and time have already occurred this year and the month is
  316. not the current month, next year is the assumed year.
  317. */
  318. .P
  319. %token year_number
  320. /*
  321. A year_number is a four-digit number representing the year A.D., in
  322. which the at_job is to be run.
  323. */
  324. .P
  325. %token inc_number
  326. /*
  327. The inc_number is the number of times the succeeding increment
  328. period is to be added to the specified date and time.
  329. */
  330. .P
  331. %token timezone_name
  332. /*
  333. The name of an optional timezone suffix to the time field, in an
  334. implementation-defined format.
  335. */
  336. .P
  337. %token month_name
  338. /*
  339. One of the values from the mon or abmon keywords in the LC_TIME
  340. locale category.
  341. */
  342. .P
  343. %token day_of_week
  344. /*
  345. One of the values from the day or abday keywords in the LC_TIME
  346. locale category.
  347. */
  348. .P
  349. %token am_pm
  350. /*
  351. One of the values from the am_pm keyword in the LC_TIME locale
  352. category.
  353. */
  354. .P
  355. %start timespec
  356. %%
  357. timespec : time
  358. | time date
  359. | time increment
  360. | time date increment
  361. | nowspec
  362. ;
  363. .P
  364. nowspec : "now"
  365. | "now" increment
  366. ;
  367. .P
  368. time : hr24clock_hr_min
  369. | hr24clock_hr_min timezone_name
  370. | hr24clock_hour ":" minute
  371. | hr24clock_hour ":" minute timezone_name
  372. | wallclock_hr_min am_pm
  373. | wallclock_hr_min am_pm timezone_name
  374. | wallclock_hour ":" minute am_pm
  375. | wallclock_hour ":" minute am_pm timezone_name
  376. | "noon"
  377. | "midnight"
  378. ;
  379. .P
  380. date : month_name day_number
  381. | month_name day_number "," year_number
  382. | day_of_week
  383. | "today"
  384. | "tomorrow"
  385. ;
  386. .P
  387. increment : "+" inc_number inc_period
  388. | "next" inc_period
  389. ;
  390. .P
  391. inc_period : "minute" | "minutes"
  392. | "hour" | "hours"
  393. | "day" | "days"
  394. | "week" | "weeks"
  395. | "month" | "months"
  396. | "year" | "years"
  397. ;
  398. .fi
  399. .P
  400. .RE
  401. .SH STDIN
  402. The standard input shall be a text file consisting of commands
  403. acceptable to the shell command language described in
  404. .IR "Chapter 2" ", " "Shell Command Language".
  405. The standard input shall only be used if no
  406. .BR \-f
  407. .IR file
  408. option is specified.
  409. .SH "INPUT FILES"
  410. See the STDIN section.
  411. .P
  412. The text files
  413. .BR at.allow
  414. and
  415. .BR at.deny ,
  416. which are located in an implementation-defined directory,
  417. shall contain zero or more user names, one per line, of users who are,
  418. respectively, authorized or denied access to the
  419. .IR at
  420. and
  421. .IR batch
  422. utilities.
  423. .SH "ENVIRONMENT VARIABLES"
  424. The following environment variables shall affect the execution of
  425. .IR at :
  426. .IP "\fILANG\fP" 10
  427. Provide a default value for the internationalization variables that are
  428. unset or null. (See the Base Definitions volume of POSIX.1\(hy2017,
  429. .IR "Section 8.2" ", " "Internationalization Variables"
  430. for the precedence of internationalization variables used to determine
  431. the values of locale categories.)
  432. .IP "\fILC_ALL\fP" 10
  433. If set to a non-empty string value, override the values of all the
  434. other internationalization variables.
  435. .IP "\fILC_CTYPE\fP" 10
  436. Determine the locale for the interpretation of sequences of bytes of
  437. text data as characters (for example, single-byte as opposed to
  438. multi-byte characters in arguments and input files).
  439. .IP "\fILC_MESSAGES\fP" 10
  440. .br
  441. Determine the locale that should be used to affect the format and
  442. contents of diagnostic messages written to standard error and
  443. informative messages written to standard output.
  444. .IP "\fINLSPATH\fP" 10
  445. Determine the location of message catalogs for the processing of
  446. .IR LC_MESSAGES .
  447. .IP "\fILC_TIME\fP" 10
  448. Determine the format and contents for date and time strings written and
  449. accepted by
  450. .IR at .
  451. .IP "\fISHELL\fP" 10
  452. Determine a name of a command interpreter to be used to invoke the
  453. at-job. If the variable is unset or null,
  454. .IR sh
  455. shall be used. If it is set to a value other than a name for
  456. .IR sh ,
  457. the implementation shall do one of the following: use that shell; use
  458. .IR sh ;
  459. use the login shell from the user database; or any of the preceding
  460. accompanied by a warning diagnostic about which was chosen.
  461. .IP "\fITZ\fP" 10
  462. Determine the timezone. The job shall be submitted for execution at the
  463. time specified by
  464. .IR timespec
  465. or
  466. .BR \-t
  467. .IR time
  468. relative to the timezone specified by the
  469. .IR TZ
  470. variable. If
  471. .IR timespec
  472. specifies a timezone, it shall override
  473. .IR TZ .
  474. If
  475. .IR timespec
  476. does not specify a timezone and
  477. .IR TZ
  478. is unset or null, an unspecified default timezone shall be used.
  479. .SH "ASYNCHRONOUS EVENTS"
  480. Default.
  481. .SH STDOUT
  482. When standard input is a terminal, prompts of unspecified format for
  483. each line of the user input described in the STDIN section may be
  484. written to standard output.
  485. .P
  486. In the POSIX locale, the following shall be written to the standard
  487. output for each job when jobs are listed in response to the
  488. .BR \-l
  489. option:
  490. .sp
  491. .RS 4
  492. .nf
  493. "%s\et%s\en", \fIat_job_id\fR, <\fIdate\fR>
  494. .fi
  495. .P
  496. .RE
  497. .P
  498. where
  499. .IR date
  500. shall be equivalent in format to the output of:
  501. .sp
  502. .RS 4
  503. .nf
  504. date +"%a %b %e %T %Y"
  505. .fi
  506. .P
  507. .RE
  508. .P
  509. The date and time written shall be adjusted so that they appear in the
  510. timezone of the user (as determined by the
  511. .IR TZ
  512. variable).
  513. .SH STDERR
  514. In the POSIX locale, the following shall be written to standard error
  515. when a job has been successfully submitted:
  516. .sp
  517. .RS 4
  518. .nf
  519. "job %s at %s\en", \fIat_job_id\fR, <\fIdate\fR>
  520. .fi
  521. .P
  522. .RE
  523. .P
  524. where
  525. .IR date
  526. has the same format as that described in the STDOUT section. Neither
  527. this, nor warning messages concerning the selection of the command
  528. interpreter, shall be considered a diagnostic that changes the exit
  529. status.
  530. .P
  531. Diagnostic messages, if any, shall be written to standard error.
  532. .SH "OUTPUT FILES"
  533. None.
  534. .SH "EXTENDED DESCRIPTION"
  535. None.
  536. .SH "EXIT STATUS"
  537. The following exit values shall be returned:
  538. .IP "\00" 6
  539. The
  540. .IR at
  541. utility successfully submitted, removed, or listed a job or jobs.
  542. .IP >0 6
  543. An error occurred.
  544. .SH "CONSEQUENCES OF ERRORS"
  545. The job shall not be scheduled, removed, or listed.
  546. .LP
  547. .IR "The following sections are informative."
  548. .SH "APPLICATION USAGE"
  549. The format of the
  550. .IR at
  551. command line shown here is guaranteed only for the POSIX locale. Other
  552. cultures may be supported with substantially different interfaces,
  553. although implementations are encouraged to provide comparable levels of
  554. functionality.
  555. .P
  556. Since the commands run in a separate shell invocation, running in a
  557. separate process group with no controlling terminal, open file
  558. descriptors, traps, and priority inherited from the invoking
  559. environment are lost.
  560. .P
  561. Some implementations do not allow substitution of different shells
  562. using
  563. .IR SHELL .
  564. System V systems, for example, have used the login shell value for the
  565. user in
  566. .BR /etc/passwd .
  567. To select reliably another command interpreter, the user must include
  568. it as part of the script, such as:
  569. .sp
  570. .RS 4
  571. .nf
  572. \fB$\fR at 1800
  573. myshell myscript
  574. EOT
  575. \fBjob ... at ...
  576. \fB$\fR
  577. .fi
  578. .P
  579. .RE
  580. .SH EXAMPLES
  581. .IP " 1." 4
  582. This sequence can be used at a terminal:
  583. .RS 4
  584. .sp
  585. .RS 4
  586. .nf
  587. at -m 0730 tomorrow
  588. sort < file >outfile
  589. EOT
  590. .fi
  591. .P
  592. .RE
  593. .RE
  594. .IP " 2." 4
  595. This sequence, which demonstrates redirecting standard error to a pipe,
  596. is useful in a command procedure (the sequence of output redirection
  597. specifications is significant):
  598. .RS 4
  599. .sp
  600. .RS 4
  601. .nf
  602. at now + 1 hour <<!
  603. diff file1 file2 2>&1 >outfile | mailx mygroup
  604. !
  605. .fi
  606. .P
  607. .RE
  608. .RE
  609. .IP " 3." 4
  610. To have a job reschedule itself,
  611. .IR at
  612. can be invoked from within the at-job. For example, this daily
  613. processing script named
  614. .BR my.daily
  615. runs every day (although
  616. .IR crontab
  617. is a more appropriate vehicle for such work):
  618. .RS 4
  619. .sp
  620. .RS 4
  621. .nf
  622. # my.daily runs every day
  623. \fIdaily processing\fR
  624. at now tomorrow < my.daily
  625. .fi
  626. .P
  627. .RE
  628. .RE
  629. .IP " 4." 4
  630. The spacing of the three portions of the POSIX locale
  631. .IR timespec
  632. is quite flexible as long as there are no ambiguities. Examples of
  633. various times and operand presentation include:
  634. .RS 4
  635. .sp
  636. .RS 4
  637. .nf
  638. at 0815am Jan 24
  639. at 8 :15amjan24
  640. at now "+ 1day"
  641. at 5 pm FRIday
  642. at \(aq17
  643. utc+
  644. 30minutes\(aq
  645. .fi
  646. .P
  647. .RE
  648. .RE
  649. .SH RATIONALE
  650. The
  651. .IR at
  652. utility reads from standard input the commands to be executed at a
  653. later time. It may be useful to redirect standard output and standard
  654. error within the specified commands.
  655. .P
  656. The
  657. .BR \-t
  658. .IR time
  659. option was added as a new capability to support an internationalized
  660. way of specifying a time for execution of the submitted job.
  661. .P
  662. Early proposals added a ``jobname'' concept as a way of giving
  663. submitted jobs names that are meaningful to the user submitting them.
  664. The historical, system-specified
  665. .IR at_job_id
  666. gives no indication of what the job is. Upon further reflection, it was
  667. decided that the benefit of this was not worth the change in historical
  668. interface. The
  669. .IR at
  670. functionality is useful in simple environments, but in large or complex
  671. situations, the functionality provided by the Batch Services option is
  672. more suitable.
  673. .P
  674. The
  675. .BR \-q
  676. option historically has been an undocumented option, used mainly by the
  677. .IR batch
  678. utility.
  679. .P
  680. The System V
  681. .BR \-m
  682. option was added to provide a method for informing users that an at-job
  683. had completed. Otherwise, users are only informed when output to
  684. standard error or standard output are not redirected.
  685. .P
  686. The behavior of
  687. .IR at
  688. <\fBnow\fP> was changed in an early proposal from being unspecified to
  689. submitting a job for potentially immediate execution. Historical BSD
  690. .IR at
  691. implementations support this. Historical System V implementations give
  692. an error in that case, but a change to the System V versions should
  693. have no backwards-compatibility ramifications.
  694. .P
  695. On BSD-based systems, a
  696. .BR \-u
  697. .IR user
  698. option has allowed those with appropriate privileges to access the work
  699. of other users. Since this is primarily a system administration feature
  700. and is not universally implemented, it has been omitted. Similarly, a
  701. specification for the output format for a user with appropriate
  702. privileges viewing the queues of other users has been omitted.
  703. .P
  704. The
  705. .BR \-f
  706. .IR file
  707. option from System V is used instead of the BSD method of using the
  708. last operand as the pathname. The BSD method is ambiguous\(emdoes:
  709. .sp
  710. .RS 4
  711. .nf
  712. at 1200 friday
  713. .fi
  714. .P
  715. .RE
  716. .P
  717. mean the same thing if there is a file named
  718. .BR friday
  719. in the current directory?
  720. .P
  721. The
  722. .IR at_job_id
  723. is composed of a limited character set in historical practice, and it
  724. is mandated here to invalidate systems that might try using characters
  725. that require shell quoting or that could not be easily parsed by shell
  726. scripts.
  727. .P
  728. The
  729. .IR at
  730. utility varies between System V and BSD systems in the way timezones
  731. are used. On System V systems, the
  732. .IR TZ
  733. variable affects the at-job submission times and the times displayed
  734. for the user. On BSD systems,
  735. .IR TZ
  736. is not taken into account. The BSD behavior is easily achieved with
  737. the current specification. If the user wishes to have the timezone
  738. default to that of the system, they merely need to issue the
  739. .IR at
  740. command immediately following an unsetting or null assignment to
  741. .IR TZ .
  742. For example:
  743. .sp
  744. .RS 4
  745. .nf
  746. TZ= at noon ...
  747. .fi
  748. .P
  749. .RE
  750. .P
  751. gives the desired BSD result.
  752. .P
  753. While the
  754. .IR yacc -like
  755. grammar specified in the OPERANDS section is lexically unambiguous with
  756. respect to the digit strings, a lexical analyzer would probably be
  757. written to look for and return digit strings in those cases. The parser
  758. could then check whether the digit string returned is a valid
  759. .IR day_number ,
  760. .IR year_number ,
  761. and so on, based on the context.
  762. .SH "FUTURE DIRECTIONS"
  763. None.
  764. .SH "SEE ALSO"
  765. .IR "\fIbatch\fR\^",
  766. .IR "\fIcrontab\fR\^"
  767. .P
  768. The Base Definitions volume of POSIX.1\(hy2017,
  769. .IR "Chapter 8" ", " "Environment Variables",
  770. .IR "Section 12.2" ", " "Utility Syntax Guidelines"
  771. .\"
  772. .SH COPYRIGHT
  773. Portions of this text are reprinted and reproduced in electronic form
  774. from IEEE Std 1003.1-2017, Standard for Information Technology
  775. -- Portable Operating System Interface (POSIX), The Open Group Base
  776. Specifications Issue 7, 2018 Edition,
  777. Copyright (C) 2018 by the Institute of
  778. Electrical and Electronics Engineers, Inc and The Open Group.
  779. In the event of any discrepancy between this version and the original IEEE and
  780. The Open Group Standard, the original IEEE and The Open Group Standard
  781. is the referee document. The original Standard can be obtained online at
  782. http://www.opengroup.org/unix/online.html .
  783. .PP
  784. Any typographical or formatting errors that appear
  785. in this page are most likely
  786. to have been introduced during the conversion of the source files to
  787. man page format. To report such errors, see
  788. https://www.kernel.org/doc/man-pages/reporting_bugs.html .