Sujet : Re: Which shell and how to get started handling arguments
De : lew.pitcher (at) *nospam* digitalfreehold.ca (Lew Pitcher)
Groupes : comp.unix.shellDate : 15. Apr 2024, 17:06:31
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <uvjfpn$b4oi$1@dont-email.me>
References : 1
User-Agent : Pan/0.139 (Sexual Chocolate; GIT bf56508 git://git.gnome.org/pan2)
On Mon, 15 Apr 2024 13:22:14 +0100, James Harris wrote:
For someone who is relatively new to Unix shell scripting (me) some
advice would be more than welcome on where to begin.
I have two main queries:
Q1) How can one write a script which is maximally compatible with
different systems?
As others have said, write your script to the POSIX shell language
standards. (see
https://pubs.opengroup.org/onlinepubs/9699919799/utilities/V3_chap02.html)
Most shells support this restricted dialect.
Q2) How does one go about handling arguments in preferably a simple but
universal way?
The "simple but universal way" is to sequentially parse your argument list.
But, this leads to complications that may not sit with your script design,
in that you (the programmer) have to decide on whether or not you want
to impose a specific order to the argument list, and, following that
decision, how you want to handle "unflagged" arguments.
Then, there is getopts (which is /not/ a universally-supported extension
to the shell language), which will handle the argument list for you, but
with caveats and argument list order decisions that you might not agree
with.
For the most part, the "simple but universal" rule is "KISS" (Keep It Simple
& Sequential), with flags first, and non-flag arguments in a fixed order,
after the flags.
HTH
-- Lew Pitcher"In Skills We Trust"