From: "Bart Schaefer" <schaefer@brasslantern.com>
To: Zsh Development Workers <zsh-workers@math.gatech.edu>
Subject: Re: How sensible is ... ?
Date: Wed, 13 Jan 1999 08:11:46 -0800 [thread overview]
Message-ID: <990113081146.ZM17374@candle.brasslantern.com> (raw)
In-Reply-To: <19990113102626.A6200@fysh.org>
In-Reply-To: <19990113110951.A6955@fysh.org>
In-Reply-To: <9901131117.AA60050@ibmth.df.unipi.it>
In-Reply-To: <19990113120153.A7542@fysh.org>
In-Reply-To: <9901131245.AA35423@ibmth.df.unipi.it>
Gotta stay up all night to keep up with these discussions nowadays ...
On Jan 13, 10:26am, Phil Pennock wrote:
} Subject: How sensible is ... ?
}
} How good an idea would it be to add a shell-callable context builtin, or
} a shell variable, to tell whether something is being run directly [...]
} the scripts could then be written such that zsh users could autoload
} them and others could run them and get the same effective results.
On Jan 13, 12:17pm, Peter Stephenson wrote:
} Subject: Re: How sensible is ... ?
}
} In this particular case, you don't need it, since return will function
} like exit in a script.
That's 99.9% right. :-) In zsh, return will function like exit, but in
other shells you just get "return: command not found" or the equivalent.
If you want to write a script that can be executed by sh/bash/ksh and
still be autoloaded by zsh, you need to use something like
return $? 2>/dev/null || exit $?
On Jan 13, 11:09am, Phil Pennock wrote:
} Subject: Re: How sensible is ... ?
}
} Actually, I've just thought of [[ -o interactive ]] -- always the way.
}
} Is this a sufficient test? It /seems/ to work as I want ...
It won't work if you call your function from `zsh -c ...` and possibly
not in a few other cases as well (though that test should always be OK
whenever you have a shell prompt).
On Jan 13, 12:17pm, Peter Stephenson wrote:
} I've thought of a hack which is pretty much guaranteed to work (I
} think):
}
} foo=global
} local foo >/dev/null
} if [[ $foo = global ]]; then
} print At top level
} else
} print Inside a function
} fi
}
} The nasty bit is the `local foo' which prints the status of $foo if it
} already exists. I keep thinking we ought to do something about that.
I don't have ksh handy, but `foo=bar;local foo` in bash produces the error
message "bash: local: can only be used in a function" unless you are in a
function, in which case it produces nothing.
--
Bart Schaefer Brass Lantern Enterprises
http://www.well.com/user/barts http://www.brasslantern.com
next prev parent reply other threads:[~1999-01-13 16:14 UTC|newest]
Thread overview: 7+ messages / expand[flat|nested] mbox.gz Atom feed top
1999-01-13 10:26 Phil Pennock
1999-01-13 11:09 ` Phil Pennock
1999-01-13 11:17 ` Peter Stephenson
1999-01-13 12:01 ` Phil Pennock
1999-01-13 12:45 ` Peter Stephenson
1999-01-13 16:11 ` Bart Schaefer [this message]
1999-01-13 17:02 ` Phil Pennock
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=990113081146.ZM17374@candle.brasslantern.com \
--to=schaefer@brasslantern.com \
--cc=zsh-workers@math.gatech.edu \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this public inbox
https://git.vuxu.org/mirror/zsh/
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).