Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: Execute a Command in PS1 w/o Disturbing Previous Return Value?
- X-seq: zsh-users 7843
- From: Aaron Davies <agdavi01@xxxxxxxxxxxxxx>
- To: zsh-users@xxxxxxxxxx
- Subject: Re: Execute a Command in PS1 w/o Disturbing Previous Return Value?
- Date: Sat, 14 Aug 2004 12:07:28 -0400
- In-reply-to: <Pine.LNX.4.61.0408130204340.15905@xxxxxxxxxxxxxxxxxx>
- Mailing-list: contact zsh-users-help@xxxxxxxxxx; run by ezmlm
On Friday, August 13, 2004, at 01:32 PM, Bart Schaefer wrote:
On Thu, 12 Aug 2004, Aaron Davies wrote:
I'm trying to write a prompt that will do two things: include a file
frequently re-downloaded from the web, and indicate the return status
of
the previous command. The problem is, if I cat out the file, it
returns
0, overwriting the return status read by the %(0?%) directive
This should probably be considered a bug.
I dunno, I can see where someone might want a prompt so complicated it
needed internal error-handling based on return value of executed
commands (cat foo || cat bar, etc.). Would "fixing" this prevent that?
What can I do about this?
In addition to Philippe's suggestion of using precmd so that $? is
saved
and restored for you by the shell -- which is what should be happening
during command substitutions in prompt expansion, but isn't -- a simple
alternative is to use $(<...) instead of `cat ...`.
You can also use $'...' instead of `echo '...'`
export PS1='$(</tmp/temperature)'" %m%~ %(0?."\
$'%{\e[1;32m%}:)%{\e[0m%}.%{\e[1;31m%}:(%{\e[0m%}'") %# "
Thank you, that works perfectly!
--
__ __
/ ) / )
/--/ __. .__ ______ / / __. , __o _ _
/ (_(_/|_/ (_(_) / (_ (__/_(_/|_\/ <__</_/_)_
Messages sorted by:
Reverse Date,
Date,
Thread,
Author