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 --help
es un error . Imagine lo que sucede si lo hace:printf "The option you entered is: " ; echo "$opt"
y la variable de shellopt
contiene el texto--help
. Según el estándar POSIX,echo
no está permitido comportarse de esta manera, pero el eco GNU es desagradablemente disconforme.echo -e
yecho -n
también es un error, según tu lógica?Respuestas:
man echo
se relaciona con elecho
programa . GNUecho
admite una--help
opción, al igual que otras. Cuando corresecho
en Bash, obtienes su incorporado,echo
que no lo hace.Para acceder al
echo
programa, en lugar de al programa integrado, puede darle una ruta:o use el
enable
comando 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
.enable
funciona, sin embargo.echo
en particular tiene muchas extensiones por encima de POSIX, y Bashecho
solo 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
,[
, ypwd
son los que es probable encontrar.command
siempre llama explícitamente a los builtins. No sé lo que estaba pensando, aparte de que esozsh
funciona a la inversa.Además de otras respuestas, puede usar
También vea una breve ayuda para el
echo
comando incorporado .fuente
Está utilizando el
echo
comando incorporado de bash, que no comprende la--help
opción. Utilizar:Para ver la ayuda para el incorporado
echo
, utiliceman bash
y busqueecho
.fuente