Como concatenar uma variável de shell para outros outros parâmetros nas minhas linhas de comando?
Por exemplo,
#!/bin/sh
WEBSITE="danydiop"
/usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > $WEBSITE.sql
Eu preciso concatenar .sql
para$WEBSITE
shell-script
shell
variable
aneuryzm
fonte
fonte
${ }
não seja concatenação em nenhum sentido. Por exemplo,ELP=elp && echo $ELP && man --h${EPL}
não funciona.Apenas concatene o conteúdo da variável para o que mais você deseja concatenar, por exemplo
As aspas duplas não estão relacionadas à concatenação: aqui
>$WEBSITE.sql
também teria funcionado. Eles são necessários para expansões de variáveis quando o valor da variável pode conter alguns caracteres especiais do shell (espaços em branco e\[?*
). Eu recomendo colocar aspas duplas em todas as expansões variáveis e substituições de comandos, ou seja, sempre escreva"$WEBSITE"
e"$(mycommand)"
.Para mais detalhes, consulte $ VAR vs $ {VAR} e para citar ou não .
fonte
Eu costumo usar aspas, por exemplo
echo "$WEBSITE.sql"
.Então você pode escrever como:
fonte
.
não é um caractere válido em um nome de variável; ver a resposta de wag se você quiser concatenar uma cadeia que se inicia com caracteres válidos (por exemplo, "$ WEBSITEsql" não iria funcionar)