Sujet : Re: Case Insensitive File Systems -- Torvalds Hates Them
De : rich (at) *nospam* example.invalid (Rich)
Groupes : comp.os.linux.miscDate : 06. May 2025, 23:27:22
Autres entêtes
Organisation : A noiseless patient Spider
Message-ID : <vve2ca$3u54v$1@dont-email.me>
References : 1 2 3 4 5 6 7 8 9 10 11 12 13
User-Agent : tin/2.6.1-20211226 ("Convalmore") (Linux/5.15.139 (x86_64))
The Natural Philosopher <
tnp@invalid.invalid> wrote:
On 04/05/2025 14:41, Richard Kettlewell wrote:
I mean you can trace the transmission of the command line from parent to
child process through the startup. There’s no splitting in there, it’s
an array of strings from top to bottom.
But the command line is not an array of strings... any more than this
line of text is. That's what I don't understand. It's a single string
The shell (bash/csh/tcsh/ksh/ash/etc.) reads a line of text from you
when you type it in and press return/enter.
The splitting on spaces (and handling of quotes etc) happens in the
shell.
An array by definition is already split. On what basis is it split?
The shell performs the "splitting" from a "line of text" into
individual strings.
All of the kernel, C the language, and libc the library routines
handles the "command line" values as an array of strings.
The shell that reads in that line from you is what splits it up to make
it compatible with the kernel/C/libc interface.
Or, said another way, the shell (bash/csh/etc) is the "translator" from
"single line of text" into "array of strings" that the rest of the
interface expects to receive.