| 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