2016-10-07 3 views
0

Я создаю скрипт для CentOS 7, но я изо всех сил пытаюсь объединить значения на основе переменных, в отличие от других распределений, которые я работал. Например, в коде ниже:конкатенация переменных в скрипте для CentOS 7

DIR_BKP=/tmp/_bkp_local 
PATH_LOG=$DIR_BKP/logs 
echo $PATH_LOG 

, когда я бегу, печатает

/logs_bkp_local 

Как вы можете видеть, эхо возвращается смесительные между начальным значением перекрывающей переменной с новым значением.

Я попытался

PATH_LOG="$DIR_BKP/logs" 
PATH_LOG=${DIR_BKP}/logs 

все печатать то же самое.

Как я могу выполнить эту простую задачу в CentOS?

+0

выходы, как ожидается, для меня, хотя я только проверил на CentOS 6.8 вместо 7. Вы попытаетесь гулких $ DIR_BKP сам по себе, чтобы убедиться, что он действительно содержит то, что вы ожидаете? –

+0

Я думаю, вы отредактировали свой скрипт в окне Wintendo. Вероятный дубликат сценария [bash всегда печатает «Команда не найдена»] (http://stackoverflow.com/questions/7362504/bash-script-always-prints-command-not-found) – tripleee

+0

Безымянный голос, эхо-печать $ DIR_BKP правильно, т. е. «/ tmp/_bkp_local» –

ответ

0

Выполнение команд непосредственно в оболочке, все работает нормально, проблема возникает только при выполнении команд через скрипт. Для того, чтобы приступить к работе, я должен был использовать «экспорт», как это:

export DIR_BKP=/tmp/_bkp_local 
export PATH_LOG=${DIR_BKP}/logs 
echo $DIR_BKP 
echo $PATH_LOG 

Prints: 
/tmp/_bkp_local 
/tmp/_bkp_local/logs 
Смежные вопросы