Improve command substitution

- .kshrc file isn't special - $ENV can point to any file
- use $MAIL since is available by default
- replace backticks ('`') with '$()' - they both nest and look better
- be consistent about using `[` or `test` - chose the latter here
- use `-n` for the second test case in order to keep the examples'
  logic the same:

	[...] && echo '* '
This commit is contained in:
Raf Czlonka 2023-07-11 16:13:32 +01:00
parent 0a2509e3e0
commit 4e2c82f4fb
1 changed files with 4 additions and 4 deletions

View File

@ -11,7 +11,7 @@ them up on this shell. So here are some things I do on my local machine
that work here: that work here:
To get the shell to tell you when you have new mail, after command To get the shell to tell you when you have new mail, after command
executions, add this to your `.profile` or your `.kshrc` files executions, add this to your `.profile` or your `$ENV` files
(or other shell RC file) in your home directory. (or other shell RC file) in your home directory.
``` ```
@ -20,16 +20,16 @@ export MAILCHECK=0
And, if you want, you can have a persistent notification when And, if you want, you can have a persistent notification when
you have un-incorporated mail, or more specifically, when your you have un-incorporated mail, or more specifically, when your
`/var/mail/<username>` isn't empty. `$MAIL` (`/var/mail/$USER` by default)` isn't empty.
``` ```
PS1="$([ -s /var/mail/`whoami` ] && echo '* ')$PS1" PS1="$(test -s $MAIL ] && echo '* ')$PS1"
``` ```
For maildir try this: For maildir try this:
``` ```
PS1="$(test -z "`ls -A $HOME/Maildir/new`" || echo '* ')$PS1" PS1="$(test -n "$(ls -A $HOME/Maildir/new)" && echo '* ')$PS1"
``` ```
This works in `/bin/ksh`, I can't speak for other shells. This works in `/bin/ksh`, I can't speak for other shells.