GNU/Linux >> Tutoriales Linux >  >> Linux

¿Por qué nadie usa The True Bourne Shell como /bin/sh?

He notado que básicamente ningún sistema con el que he trabajado tiene /bin/sh como un ejecutable real. Siempre es un enlace simbólico a dash , bash en modo POSIX, o algo similar.

¿Por qué? ¿Cuáles son las desventajas de usar el verdadero y original /bin/sh ? (¿Velocidad? ¿Concesión de licencias?)

Respuesta aceptada:

Supongo que falta de funciones:sin historial de comandos, sin redirección elegante, sin edición de línea de comandos. BSD introdujo csh el shell C por esas razones. Otro factor es que Genuine Bourne Shell solo estuvo disponible recientemente en forma de código abierto. A menos que lo licenciara, no podría distribuirlo. Eso lo puso fuera del alcance de las distribuciones gratuitas y lo hizo ideológicamente desagradable para otras distribuciones y *BSD.

Pero el código ya está disponible. Puedes echarle un vistazo, compilarlo, darle una vuelta.


Linux
  1. ¿Por qué es mejor usar “#!/usr/bin/env Name” en lugar de “#!/path/to/name” como Shebang?

  2. ¿Por qué Bashrc comprueba si el shell actual es interactivo?

  3. ¿Es correcto usar /bin/sh en el Hashbang si Bourne Shell no está disponible en una distribución?

  4. ¿Alguna razón para tener un Shebang apuntando a /bin/sh en lugar de /bin/bash?

  5. ¿Por qué /bin/sh apunta a /bin/dash y no a /bin/bash?

¿Cuál es la diferencia entre /sbin/nologin y /bin/false?

¿Por qué necesita poner #!/bin/bash al comienzo de un archivo de script?

¿Por qué el usuario 'bin' necesita un shell de inicio de sesión?

¿Por qué verdadero y falso son tan grandes?

¿Por qué se requieren < o > para usar /dev/tcp?

#!/bin/sh vs #!/bin/bash para máxima portabilidad