Deutsch   English   Français   Italiano  
<20240904192549.23@kylheku.com>

View for Bookmarking (what is this?)
Look up another Usenet article

Path: ...!eternal-september.org!feeder3.eternal-september.org!news.eternal-september.org!.POSTED!not-for-mail
From: Kaz Kylheku <643-408-1753@kylheku.com>
Newsgroups: comp.unix.programmer
Subject: Re: Always use "--" (Was: Long filenames in DOS/Windows and
 Unix/Linux)
Date: Thu, 5 Sep 2024 02:29:49 -0000 (UTC)
Organization: A noiseless patient Spider
Lines: 51
Message-ID: <20240904192549.23@kylheku.com>
References: <9e7a4bd1-bfbb-4df7-af1a-27ca9625e50bn@googlegroups.com>
 <yga34mfoily.fsf@akutech.de> <87ttevzoj3.fsf@nosuchdomain.example.com>
 <vb9k2l$3r705$1@dont-email.me> <vb9ls7$1igeo$1@news.xmission.com>
 <vb9mls$3rk17$1@dont-email.me>
Injection-Date: Thu, 05 Sep 2024 04:29:49 +0200 (CEST)
Injection-Info: dont-email.me; posting-host="4d4bbe75f0388a771dfebf259ca2980f";
	logging-data="198221"; mail-complaints-to="abuse@eternal-september.org";	posting-account="U2FsdGVkX1/rI1JqZZHFKEzHc+lJzIhqhQIdrgZnX3M="
User-Agent: slrn/pre1.0.4-9 (Linux)
Cancel-Lock: sha1:dQFXUlmLeOy/9owJumqrRMlvd+A=
Bytes: 3143

On 2024-09-04, Lew Pitcher <lew.pitcher@digitalfreehold.ca> wrote:
> On Wed, 04 Sep 2024 13:04:07 +0000, Kenny McCormack wrote:
>
>> In article <vb9k2l$3r705$1@dont-email.me>,
>> Nuno Silva  <nunojsilva@invalid.invalid> wrote:
>> ...
>>>> D'oh!
>>>
>>>(Along with these quotes, I'd add ./ before $file.)
>> 
>> Or, more simply, just put -- after the -p.
>> 
>> This is an often overlooked aspect of shell programing.  You should always
>> use "--".  The "shellcheck" program will tell you this, if you let it.
>
> The "--" option is just that, an option coded into the argument parser of
> the program being invoked. Many programs /do not/ recognize "--" as an
> "end of flags" argument, so the effectiveness of "--" is unreliable.
>
> OTOH, if you specify a fully qualified pathname, (or, at least, a qualified
> relative pathname), you can assure yourself that the file path provided
> to the program /will not/ start with the '-' that indicates a program flag.
>
> Note that all this is /convention/ and not /requirement/. There are situations
> in which /none/ of the above applies, as
> a) the program interprets it's arguments by /position/, or
> b) the program doesn't use the '-' to introduce flag arguments, or
> c) the program doesn't take filenames as arguments, or
> d) some other conditions that I'm too lazy to enumerate

d) it's a goddamned GNU program that continues to take options
after non-option arguments!

$ ls . -ld
drwxr-xr-x 67 kaz kaz 36864 Sep  3 15:59 .

.... unless -- is specified to signal the end of options.

$ ls -ld -- . -ld
ls: cannot access '-ld': No such file or directory
drwxr-xr-x 67 kaz kaz 36864 Sep  3 15:59 .

So unfortunately although starting an argument with ./ will
ensure that it's not treated as an option, it doesn't mean
it will be treated as the first non-option argument after
which there are no more option arguments.

-- 
TXR Programming Language: http://nongnu.org/txr
Cygnal: Cygwin Native Application Library: http://kylheku.com/cygnal
Mastodon: @Kazinator@mstdn.ca