расширение переменной в одинарных кавычках

У меня есть строка в одинарных кавычках. Внутри которого я хочу вставить переменную и развернуть ее. Я знаю, что в bash расширение переменных работает только с двойными кавычками. Но я все еще не могу заставить его работать.

e.g.:

TOOLS_DIR="/tools"
echo '#define SYS_VIMRC_FILE "${TOOLS_DIR}/etc/vimrc"' >> src/feature.h

Результат, который я получаю, выглядит следующим образом:

#define SYS_VIMRC_FILE "${TOOLS_DIR}/etc/vimrc"

И ожидаемый результат:

#define SYS_VIMRC_FILE "/tools/etc/vimrc"

Как можно Я решаю эту проблему?

0
задан 14 May 2016 в 01:45

2 ответа

Ваши двойные кавычки технически все еще в одинарных кавычках, таким образом, никакого расширения не может произойти. Можно закрыть одинарные кавычки прежде, чем запустить двойные кавычки и сделать реверс в конце того внутреннего раздела для достижения того, что Вы хотите:

TOOLS_DIR="/tools"
echo '#define SYS_VIMRC_FILE "'"$TOOLS_DIR"'"/etc/vimrc' >> src/feature.h

, Кроме того:

TOOLS_DIR="/tools"
printf '#define SYS_VIMRC_FILE "%s"/etc/vimrc\n' "$TOOLS_DIR" >> src/feature.h
3
ответ дан 14 May 2016 в 11:45

Ваша переменная не расширится, потому что Вам разграничили строку с ', пробуют heredoc

TOOLS_DIR="/tools"
cat <<- EOF >> src/feature.h
    #define SYS_VIMRC_FILE "${TOOLS_DIR}/etc/vimrc" 
EOF

, или Вы могли измениться на " и выйти из внутреннего "

TOOLS_DIR="/tools"
echo "#define SYS_VIMRC_FILE \"${TOOLS_DIR}/etc/vimrc\"" >> src/feature.h
1
ответ дан 14 May 2016 в 11:45
  • 1
    По некоторым причинам с помощью gsettings didn' t работа: james@james-Streacom:~$ gsettings set org.gnome.gnome-screenshot auto-save-directory `file:///media/james/Seagate Expansion Drive/Downloads/Screenshots`. Это просто дало мне > подсказка. Но изменяя местоположение через редактора Dconf согласно @pomsky' s ответ здесь работал наряду с отключением ярлыка по умолчанию и заменой того же самого ярлыка с gnome-screenshot команда (или с одним из it' s опции как -w или -a). – James Ray 28 October 2017 в 13:55

Другие вопросы по тегам:

Похожие вопросы: