Intenté 'man echo' en Bash y me dijo que 'echo --help' mostrará ayuda y luego saldrá, y de manera similar, 'echo --version' generará la versión y saldrá. ¿Pero por qué no funciona? 'echo --help' simplemente imprime '--help' literalmente.
20

echo --helpes un error . Imagine lo que sucede si lo hace:printf "The option you entered is: " ; echo "$opt"y la variable de shelloptcontiene el texto--help. Según el estándar POSIX,echono está permitido comportarse de esta manera, pero el eco GNU es desagradablemente disconforme.echo -eyecho -ntambién es un error, según tu lógica?Respuestas:
man echose relaciona con elechoprograma . GNUechoadmite una--helpopción, al igual que otras. Cuando corresechoen Bash, obtienes su incorporado,echoque no lo hace.Para acceder al
echoprograma, en lugar de al programa integrado, puede darle una ruta:o use el
enablecomando de Bash para deshabilitar la versión integrada:Bash tiene versiones integradas de muchos comandos básicos, porque es un poco más rápido hacerlo, pero siempre puedes omitirlos así cuando lo necesites.
fuente
zsh.enablefunciona, sin embargo.echoen particular tiene muchas extensiones por encima de POSIX, y Bashechosolo unas pocas. No hay realmente un nombre general que se me ocurra para los comandos que podrían estar sombreados por los incorporados. No hay tantos que se necesitaría una:echo,test,[, ypwdson los que es probable encontrar.commandsiempre llama explícitamente a los builtins. No sé lo que estaba pensando, aparte de que esozshfunciona a la inversa.Además de otras respuestas, puede usar
También vea una breve ayuda para el
echocomando incorporado .fuente
Está utilizando el
echocomando incorporado de bash, que no comprende la--helpopción. Utilizar:Para ver la ayuda para el incorporado
echo, utiliceman bashy busqueecho.fuente