From 4e2c82f4fb8119d3dfde9fb82b7685beda6c8cc2 Mon Sep 17 00:00:00 2001 From: Raf Czlonka Date: Tue, 11 Jul 2023 16:13:32 +0100 Subject: [PATCH] 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 '* ' --- pages/unixtips.md | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/pages/unixtips.md b/pages/unixtips.md index 3087c04..84b74ad 100644 --- a/pages/unixtips.md +++ b/pages/unixtips.md @@ -11,7 +11,7 @@ them up on this shell. So here are some things I do on my local machine that work here: 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. ``` @@ -20,16 +20,16 @@ export MAILCHECK=0 And, if you want, you can have a persistent notification when you have un-incorporated mail, or more specifically, when your -`/var/mail/` 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: ``` -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.