El tinglado #!/bin/sh
significa que estás escribiendo código, ya sea para el shell Bourne histórica (que todavía se encuentran en algunos sistemas como Solaris creo), o más probablemente, el lenguaje estándar de shell como se define por POSIX Esto significa que read -p
y echo -n
son poco confiables.
La solución estándar/portable es:
printf 'Enter [y/n] : '
read -r opt
(El -r
impide que el tratamiento especial de \
, ya read
acepta normalmente que como una continuación de línea cuando está al final de una línea.)
Si sabe que su script se ejecutará en sistemas que tienen Bash, puede cambiar el shebang a #!/bin/bash
(o #!/usr/bin/env bash
) y usar todas las características de lujo de Bash. (Muchos sistemas han /bin/sh
enlace simbólico a bash
por lo que funciona en ambos sentidos, pero confiando en que es una mala práctica, y bash
realidad deshabilita algunas de sus propias características cuando se ejecuta bajo el nombre sh
.)
@Aaron Gracias para formatear la enviar. Fue mi primer mensaje. Me aseguraré de que mis otras publicaciones estén bien formateadas. – user1263746
De nada :-) –