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/shlas 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).