Zsh Mailing List Archive
Messages sorted by:
Reverse Date,
Date,
Thread,
Author
Re: How sensible is ... ?
- X-seq: zsh-workers 4900
- From: "Bart Schaefer" <schaefer@xxxxxxxxxxxxxxxx>
- To: Zsh Development Workers <zsh-workers@xxxxxxxxxxxxxxx>
- Subject: Re: How sensible is ... ?
- Date: Wed, 13 Jan 1999 08:11:46 -0800
- In-reply-to: <19990113102626.A6200@xxxxxxxx>
- In-reply-to: <19990113110951.A6955@xxxxxxxx>
- In-reply-to: <9901131117.AA60050@xxxxxxxxxxxxxxxxx>
- In-reply-to: <19990113120153.A7542@xxxxxxxx>
- In-reply-to: <9901131245.AA35423@xxxxxxxxxxxxxxxxx>
- References: <19990113102626.A6200@xxxxxxxx> <19990113110951.A6955@xxxxxxxx> <9901131117.AA60050@xxxxxxxxxxxxxxxxx> <19990113120153.A7542@xxxxxxxx> <9901131245.AA35423@xxxxxxxxxxxxxxxxx>
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
Messages sorted by:
Reverse Date,
Date,
Thread,
Author