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 будет довольно загроможден дубликатами и неправильными записями, как видно из вашего примера.

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