Bash - добавить новую строку, включая переменные
Я хочу добавить эту новую строку в мой.bashrc:
Path=$PATH:$JAVA_HOME/bin
Я использовал:
echo "PATH=\"$PATH:$JAVA_HOME/bin\"" >> ".bashrc"
Но это вставлено:
PATH="/home/ubuntu/bin:/home/ubuntu/.local/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/snap/bin:/bin:/usr/lib/java/jdk1.8.0_102/bin:/usr/lib/java/jdk1.8.0_102/bin:/usr/lib/java/jdk1.8.0_102/bin"
Кто-нибудь может помочь с этим вопросом?
Я знаю, что могу использовать текстовый редактор, такой как vim, но как часть скрипта мне нужно использовать
echo "string" >> file
вариант
Спасибо и привет!
3 ответа
Вам нужно сбежать $
для обоих $PATH
а также $JAVA_HOME
Так и должно быть:
echo "PATH=\$PATH:\$JAVA_HOME/bin" >> ".bashrc"
Разве вы не должны избегать знаков доллара вместо того, чтобы добавлять кавычки и избегать их? И ваша команда должна иметь экспорт перед ней, чтобы она в конечном итоге была echo "export PATH=\$PATH:\$JAVA_HOME/bin" >> .bashrc
Чтобы сделать его более красивым, чем другие ответы здесь, вы можете использовать одинарные кавычки, потому что переменные не будут расширены:
echo 'PATH=$PATH:$JAVA_HOME/bin' >> .bashrc
Кроме того, вы захотите удалить все разделы в.bashrc из ваших предыдущих попыток, так как до тех пор, пока вы не сделаете это, ваш PATH будет довольно загроможден дубликатами и неправильными записями, как видно из вашего примера.