2013-07-18 3 views
5

Я видел пару сообщений для этого, например this one, но никто не помогает мне в моей конкретной ситуации.Конкатенация строковых литералов

scriptsPath="/var/db/gbi/scripts/" 
echo "$scriptsPathawesome.csv"; 

Я бы ожидать, что это эхо /var/db/gbi/scripts/awesome.csv

Вместо этого я получаю .csv

Похоже, он думает, что я пытаюсь сделать ссылку на переменную с именем $scriptsPathawesome. Как я могу объединить переменную $scriptsPath в строковый литерал "awesome.csv"?

ответ

9

Вы должны окружить переменную в фигурные скобки следующим образом:

scriptsPath="/var/db/gbi/scripts/" 
echo "${scriptsPath}awesome.csv"; 
+0

Awesome, спасибо. –

+4

Я бы также (или вместо этого) использовал явный разделитель путей, чтобы сделать его более ясным. '$ scriptsPath/awesome.csv' является безопасным, поскольку несколько последовательных разделителей рассматриваются как один экземпляр. – chepner

Смежные вопросы