A little `man` pages review: `sh` and `busybox`
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 46/100
- Tipo de issue
- Documentación
- Claridad
- Bastante claro
- Estado de actividad
- Activo
- Stack tecnológico
- markdown
- Área
- documentation
Línea de trabajo
Start by reading the sh and busybox man pages and the guidance in man/README.md, then compare the reported wording, coverage, and launcher notes with the linked Open Group utility and shell language manuals. The notes identify candidate fixes, but many are questions or suggestions rather than settled changes. Done means resolving which observations are accurate and making agreed improvements to the relevant documentation.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
I read man sh and man busybox. Below are some notes I wrote as I read, but first a takeaway:
I'm sort of disappointed with the formulations. Not as sharp and crisp as Open Group. I stopped writing down examples of weird formulations. A big suggestion is to feed the LLM the "utilities" (aka. shell) HTML files from Open Group, possibly including the command language manual as well, to inspire its language use and even lift some directly applicable formulations and duplicate topics. And even find missing info, like mention of $PWD missing from man sh's ENV section (what else is missing...). There is also the "Utility Description Defaults" section that the LLM could learn from—maybe even Typographical Conventions—as a safety net under your existing instruction in man/README.md.
Despite my disappointment over clumsy formulations, all in all, a very good resource! I already learned many things!
A last thing to consider is the command language manual (linked above) not being included in the current man set. I don't know if it's even okay to include it verbatim, but a link to it somehow in appropriate man pages, if that's doable, could be an idea. It is an incredible resource.
On to the notes:
EDIT My eyes must have been crossing over. PWD and OLDPWD are mentioned in ENVIRONMENT in man sh, so disregard that.
### sh
Doesn't list `-i` in SYNOPSIS (mentioned in DESCRIPTION, Invocation)
Doesn't list `-l` in SYNOPSIS (mentioned in DESCRIPTION, Invocation)
Almost all options are missing from the synopsis
Learned something new! Under "extensions from bash". Extended string expansions, "command_not_found_handle"
Weird formulations, like:
- "Shell options are changed with set -o name to turn one on and set +o name to turn it off."
- "The first word of a simple command, after alias expansion, names what runs."
- "... type shows which of these a name finds"
- "The search of PATH tries each element in order; an empty element is the current directory."
Learned something new! `ash` supports CDPATH
Weird formulations, like:
- "-L (the default) resolves .. in the path by its text, and -P by the directories themselves."
- "Without -P, PWD has forward slashes, an uppercase drive letter, and the capitalization stored on disk."
- `exec` is described weird
Haha: "End of input is refused the same way, but the 51st in a row leaves."
Learned something new: 'hash' works, and 'read' takes '-t', what 'times' does, BB_UMASK, 'wait -n'
Job name forms are not explained (ex. `%%`)
Weird formulations:
- "Ctrl-W Delete the blank-delimited word before the cursor.": Why is it formulated different than Alt-D and Alt-Backspace?
- "The editor never beeps."
A couple of these by now, maybe mention that they're w64devkit specific patches? (EDIT: Coming back here later, maybe say "See NOTES" for these):
- "The editor never beeps."
- "A Tab where a command name would begin, with nothing typed yet, does nothing, since listing every program in PATH takes seconds on Windows."
- "HISTSIZE up to 16384"
The OPTIONS paragraph is confusing in context. I kind of forgot that it's talking explicitly about `sh`. It's just not very good writing.
I find the text justification distracting. Maybe it's just me being used to the HTML man pages at Open Group which doesn't justify text.
ENVIRONMENT
- Learned about BASH_XTRACEFD
- I don't think CDPATH works
- I don't think EPOCHREALTIME, EPOCHSECONDS work
- Learned about "FUNCNAME"
- "HISTFILESIZE is not used.": Why not? What did it do?
- HOME: What does "user's profile directory" technically mean?
- Learned about LINENO: Nice!
- MANPATH: Nice that it's mentioned here in `sh`, but should it be?
- PATH: Maybe say explicitly that Unix/Linux/POSIX uses `:`, but Windows must use `;`
- "The prompts and the prefix of -x output;": Unclear sentence, missing comma before "and"
- TERM_PROGRAM: I don't understand this one
- "-": This is incorrect. It holds the shell options, not the last arg of prev cmd
- PWD is missing. What else may be missing?
- Also want to mention that it looks like a future version of busybox-w32 will have [PROMPT_COMMAND](https://github.com/rmyorston/busybox-w32/issues/615)
NOTES
- "The shell starts from a native Windows environment when...": What does this mean?
- Learned something new! About CRLF-handling
### busybox
"Every applet except [, echo, false, test, and true prints its usage on standard output and exits with status 0 when its first argument is --help."
- Is this correct?
"Launchers" section should explain some motivation for the aliases
- "These applets have no launcher:" Intended, or caught by the LLM?
Applets left out with no replacement:
- "the [[ form of test." Is this correct??
- Maybe explain that `bash` was just a rename of `sh` like `ash`/`lash`/`sh`
- Why is `ascii` missing, btw?
OPTIONS
- "--install" - "The kit's launchers make this unnecessary for most applets.": Mention to see "LAUNCHERS" section here
ENVIRONMENT:
"The BB_ variables are specific to busybox-w32. In the shell, export them: busybox reads them from the environment.": Confusing. Specific to `busybox-w32` as opposed to what? Compounded by calling it just "`busybox`" in the very next sentence.
Learned something! BB_CRITICAL_ERROR_DIALOGS, BB_FIX_BACKSLASH
Under BB_OVERRIDE_APPLETS, mention LAUNCHERS section
HOME: What does it technically mean "user's profile directory"?
NOTES
"A path such as c:name...": Mention that this is a `w64devkit` patch?
"/dev/null for NUL, /dev/tty for the console": Why call `NUL` but not `CON`? Maybe mention that anything that's not a `busybox-w32` applet won't understand these
"or when it is a Windows program": ?? What does this mean
"w64devkit changes busybox-w32 as follows:": Ah, here it is. Maybe separate all these into separate points.
- Lenguaje dominante
- C
- Estrellas
- 5k
- Forks
- 408
- Merge medio
- 4 h 40 min
- PR fusionados (30 d)
- 2
Preparar el entorno
- Incluye un Dockerfile o un archivo de Docker Compose
- Sin plantilla de pull request
- Sin guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de skeeto/w64devkit
-
New busybox-w32 versionAbierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 62/100
-
Bring UTF-8 back to x86 kitAbierto
Dificultad 3/5 1-2 días Aptitud para principiantes 52/100
-
Dificultad 5/5 Más de una semana Aptitud para principiantes 25/100
-
Support for mcfgthreads?Abierto
Dificultad 5/5 Más de una semana Aptitud para principiantes 35/100
-
Dificultad 4/5 3-5 días Aptitud para principiantes 35/100
Todos los issues de skeeto/w64devkit
Issues similares
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
sk3llo/ffmpeg_kit_flutter#176 ·
-
Synth suite fails unless run from the repo root: signal_flow's default machine path is cwd-relativeAbiertobug
Dificultad 2/5 1-3 horas Aptitud para principiantes 80/100
Nimblesite/osprey#370 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100