Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]
Groups > comp.os.linux.misc > #35742
| From | Ralf Fassel <ralfixx@gmx.de> |
|---|---|
| Newsgroups | comp.os.linux.misc |
| Subject | Re: correct quoting for variables in bash scripts? |
| Date | 2022-10-18 15:01 +0200 |
| Message-ID | <ygaedv58ewi.fsf@akutech.de> (permalink) |
| References | <tije9a$19dt$1@gioia.aioe.org> <eli$2210171923@qaz.wtf> <ygailkh8om8.fsf@akutech.de> <tim4kr$3nq91$1@dont-email.me> |
* Rich <rich@example.invalid>
| Ralf Fassel <ralfixx@gmx.de> wrote:
| > | The two [[ ]] square bracket form of the test command is explicitly a
| > | shell built-in, so it can recognize empty strings without help.
| >
| > Interesting, didn't know that difference:
| >
| > $ unset bar
| > $ [[ $bar = x ]] && echo yes
| > $ type [[
| > [[ is a shell keyword
| >
| > $ [ $bar = x ] && echo yes
| > bash: [: =: unary operator expected
| > $ type [
| > [ is a shell builtin
| >
| > Most probably the error thrown with "[" is to ensure compatibility with
| > /usr/bin/test?
>
| The error thrown with "[" is because what "[" sees as its argv is "= x"
| because the shell has already converted $bar into "" before "[" is
| executed.
I understand the problem for the case that there is a command to be
called after variable substitution.
But the original theory (first quotation above) why [[ did not throw an
error was that "... ([[) is explicitly a shell built-in, so it can
recognize empty strings without help."
Since '[' is also flagged as a shell-builtin by bash itself ("type [ =>
shell builtin"), I wondered "can't it detect it then just the same?"
There seems to be a difference between shell-keywords here and
shell-builtins when it comes to the handling of empty variables.
(Of course there is also /usr/bin/[ and /usr/bin/test (2 different
programs on my Opensuse) but I suppose that these are not called
when "[" is a shell-builtin.)
R'
Back to comp.os.linux.misc | Previous | Next — Previous in thread | Next in thread | Find similar
correct quoting for variables in bash scripts? Barry Stir <scooter@mealteam6.mil> - 2022-10-17 19:28 +0800
Re: correct quoting for variables in bash scripts? Aragorn <telcontar@duck.com> - 2022-10-17 14:10 +0200
Re: correct quoting for variables in bash scripts? Ralf Fassel <ralfixx@gmx.de> - 2022-10-17 14:15 +0200
Re: correct quoting for variables in bash scripts? Jerry Peters <jerry@example.invalid> - 2022-11-01 20:27 +0000
Re: correct quoting for variables in bash scripts? "Carlos E. R." <robin_listas@es.invalid> - 2022-10-17 14:39 +0200
Re: correct quoting for variables in bash scripts? Rich <rich@example.invalid> - 2022-10-17 14:02 +0000
Re: correct quoting for variables in bash scripts? Henning Hucke <h_hucke+spam.news@newsmail.aeon.icebear.org> - 2022-10-17 13:54 +0000
Re: correct quoting for variables in bash scripts? Eli the Bearded <*@eli.users.panix.com> - 2022-10-17 23:35 +0000
Re: correct quoting for variables in bash scripts? Ralf Fassel <ralfixx@gmx.de> - 2022-10-18 11:31 +0200
Re: correct quoting for variables in bash scripts? Rich <rich@example.invalid> - 2022-10-18 12:02 +0000
Re: correct quoting for variables in bash scripts? Ralf Fassel <ralfixx@gmx.de> - 2022-10-18 15:01 +0200
Re: correct quoting for variables in bash scripts? Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2022-10-18 14:17 +0000
The difference between /bin/test and /bin/[ Lew Pitcher <lew.pitcher@digitalfreehold.ca> - 2022-10-18 14:58 +0000
Re: The difference between /bin/test and /bin/[ Eli the Bearded <*@eli.users.panix.com> - 2022-10-21 04:41 +0000
Re: correct quoting for variables in bash scripts? Ralf Fassel <ralfixx@gmx.de> - 2022-10-19 12:04 +0200
csiph-web