Как я могу объединить переменную оболочки с другими параметрами в моих командных строках?
Например,
#!/bin/sh
WEBSITE="danydiop"
/usr/bin/mysqldump --opt -u root --ppassword $WEBSITE > $WEBSITE.sql
Мне нужно СЦЕПИТЬ .sql
к$WEBSITE
shell-script
shell
variable
aneuryzm
источник
источник
${ }
это не было объединением ни в каком смысле. Например,ELP=elp && echo $ELP && man --h${EPL}
не работает.Просто объедините содержимое переменной с тем, что вы хотите объединить, например,
Двойные кавычки не связаны с конкатенацией: здесь
>$WEBSITE.sql
бы тоже сработало. Они необходимы для раскрытия переменных, когда значение переменной может содержать некоторые специальные символы оболочки (пробел и\[?*
). Я настоятельно рекомендую помещать двойные кавычки вокруг всех расширений переменных и подстановок команд, т. Е. Всегда писать"$WEBSITE"
и"$(mycommand)"
.Для получения более подробной информации, смотрите $ VAR vs $ {VAR} и чтобы цитировать или не цитировать .
источник
Я обычно использую цитаты, например
echo "$WEBSITE.sql"
.Так что вы можете написать это так:
источник
.
как не является допустимым символом в имени переменной; см . ответ wag, если вы хотите объединить строку, которая начинается с допустимых символов (например, «$ WEBSITEsql» не сработает)