¿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.sql
tambié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)