¿Cómo puedo concatenar una variable de shell a otros parámetros en mis líneas de comando?
Por ejemplo,
#!/bin/sh
WEBSITE="danydiop"
/usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > $WEBSITE.sql
Necesito concatenar .sql a$WEBSITE
shell-script
shell
variable
aneuryzm
fuente
fuente

${ }no sea concatenación en ningún sentido. Por ejemplo,ELP=elp && echo $ELP && man --h${EPL}no funciona.Simplemente concatene los contenidos variables a cualquier otra cosa que desee concatenar, por ejemplo
Las comillas dobles no están relacionadas con la concatenación: aquí
>$WEBSITE.sqltambién habría funcionado. Se necesitan alrededor de expansiones de variables cuando el valor de la variable puede contener algunos caracteres especiales de shell (espacios en blanco y\[?*). Recomiendo poner comillas dobles alrededor de todas las expansiones de variables y sustituciones de comandos, es decir, siempre escribir"$WEBSITE"y"$(mycommand)".Para más detalles, vea $ VAR vs $ {VAR} y para cotizar o no cotizar .
fuente
Usualmente uso comillas, por ejemplo
echo "$WEBSITE.sql".Entonces podrías escribirlo así:
fuente
.que no es un carácter válido en un nombre de variable; vea la respuesta de wag si desea concatenar una cadena que comienza con caracteres válidos (por ejemplo, "$ WEBSITEsql" no funcionaría)