Tengo entendido que la $(...)
sintaxis de sustitución de comandos más moderna se prefiere a la `
sintaxis antigua , debido a una sintaxis de anidamiento y escape más fácil y menos propensa a errores.
Además, parece que la mayoría de /bin/sh
las conchas de estilo moderno admiten el uso $(…)
:
- golpetazo
- ash (y, por lo tanto, BusyBox, la mayoría de Linux incrustado)
- guión
- FreeBSD / bin / sh
Y $(…)
está especificado por IEEE 1003.1.
Entonces tengo 2 preguntas muy relacionadas:
- ¿Hay alguna razón para usar `en un nuevo desarrollo de scripts de shell a menos que conozca un sistema antiguo específico en el que el script necesitará ejecutarse?
- ¿Hay alguna razón para no enseñar a los estudiantes de programación de UNIX a escribir
$(...)
y debatir`
solo como una variante obsoleta que probablemente encontrarán si están leyendo los scripts de shell de otros desarrolladores (y pueden ser necesarios si están trabajando con un sistema realmente antiguo o no estándar) por alguna razón)?
$()
- shift + 4,9, shift + 0 - 5 pulsaciones de teclas;
`...`
. Está allí para la portabilidad hacia atrás solo con el shell Bourne (como el shell Bourne tenía^
(igual que|
) para la portabilidad hacia atrás con el shell Thomson). Sin embargo(t)csh
, tenga en cuenta que no tiene$(...)
(pero tampoco tiene mucho sentido usarlos o enseñarlos).