:: Re: [DNG] [OT] bash / quote weirdne…
Top Page
Delete this message
Reply to this message
Author: william moss
Date:  
To: dng
Subject: Re: [DNG] [OT] bash / quote weirdness
On 1/13/22 09:43, Antony Stone wrote:
> On Thursday 13 January 2022 at 15:07:22, Hendrik Boom wrote:
>
>> On Wed, Jan 12, 2022 at 05:45:08PM -0500, Steve Litt wrote:
>
>>> [slitt@mydesk ~]$ cat -n /etc/fstab | cut -b 1-20 | head -n5
>>>
>>>       1    UUID=730eaf92
>>>       2    UUID=41abb5fd
>>>       3    UUID=96cfdfb3
>>>       4    UUID=6F66-BF7
>>>       5    tmpfs /tmp tm

>>>
>>> [slitt@mydesk ~]$ "cat -n" /etc/fstab | cut -b 1-20 | head -n5
>>> bash: cat -n: command not found
>>>
>>> [slitt@mydesk ~]$ "cat -n /etc/fstab" | cut -b 1-20 | head -n5
>>> bash: cat -n /etc/fstab: No such file or directory
>>
>> So if it has parameters it's a command, and if it diesn't it's just
>> a file or directory?
>
> It looks a good deal more complicated than that...
>
> $ "cat /etc/fstab"
> bash: cat /etc/fstab: No such file or directory
>
> $ "cat fstab"
> bash: cat fstab: command not found
>
> I have no idea what's really going on here.
>
>
> Antony.
>

Really very simple. Bash interprets the string in total. It does not 
parse it for content prior to attempting to execute it. To do that, you 
need to change the context:
     eval "cat /etc/fstab"
This behavior is well documented on the Bash man page and in all books 
on shell programming. It is also true for other P-code or interpreted 
languages such as Perl.


-- 
William (Bill) Moss
billmoss@???
NY (USA)
     Those who will not reason, are bigots,
     those who cannot, are fools,
     and those who dare not, are slaves.
Lord Byron


     Justice will not be served until those who are
     unaffected are as outraged as those who are.
Benjamin Franklin


     When the people fear the government there is
     tyranny, when the government fears the people
     there is liberty.
John Basil Barnhill