Estoy ocupado escribiendo script de shell (usando Bash) donde necesito completar alguna variable del resultado devuelto de otro comando.
Así que estoy usando una sintaxis como esta:
VAR=`command 2>/dev/null`
Pero cuando buscaba información sobre shells de script, a menudo descubría que lo anterior se puede lograr utilizando la siguiente sintaxis también:
VAR=$(command 2>/dev/null)
Ambos funcionan para mí (he recibido el resultado esperado en ambos casos) y, por lo tanto, me pregunto si aún puedo usar ambos formularios de manera intercambiable o si tengo que apegarme a uno para asegurarme de cumplir con la evolución futura de cáscara ?
command-line
Justin
fuente
fuente
Respuestas:
Usa dólar. Los backticks son semi-obsoletos , porque son más complicados de usar (vea el enlace), y no tienen ventajas a menos que esté haciendo golf de código y absolutamente necesite guardar un solo personaje. Sin embargo, probablemente no se eliminarán de los proyectiles populares en el corto plazo, por lo que está seguro de usarlos por ahora.
fuente
Siga con la notación del signo de dólar
$()
siempre que pueda. Los backticks se vuelven engorrosos / confusos cuando comienzas a necesitar hacer citas anidadas. Ex:Reemplazar los backticks con
$()
rendimientos de la misma salida, y es más fácil de leer (menos citas de ángulos variables para discernir):Eso, y cada comilla (comilla simple, comilla doble, retroceso) significa algo diferente en el shell, por lo que usar $ puede ayudar a eliminar un nivel de complejidad. Y el desarrollador que te sigue te lo agradecerá, porque le será más fácil descubrir lo que hiciste.
fuente