Испорченный bash.bashrc файл, команды, не работающие больше

Причина это не работает, состоит в том, потому что она видит -i /bin/sh как отдельный аргумент к env. Обычно это было бы 2 аргументами, -i и /bin/sh. Это - просто ограничение хижины. Никакой путь вокруг этого.


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

Если Вы хотите, чтобы эта задача была выполнена самим сценарием и не, должны сделать что-то как env -i script.sh, у Вас может быть передолжностное лицо сценария самостоятельно.

#!/bin/sh
[ -z "$CLEANED" ] && exec /bin/env -i CLEANED=1 /bin/sh "$0" "$@"

Это вызовет сценарий передолжностному лицу сам если CLEANED переменная среды не установлена. Затем на передолжностном лице, это устанавливает переменную, чтобы удостовериться, что это не входит в цикл.

3
02.07.2014, 20:56
2 ответа

Попробуйте восстановить bash.bashrc в его настройках по умолчанию и вместо этого отредактируйте локальную копию PATH в файле ~/.bashrc. Другими словами, поместите последние две строки:

export PATH=$PATH:/usr/lib/jvm/jdk1.7.0_60/bin/
export JAVA_HOME=$JAVA_HOME:/usr/lib/jvm/jdk1.7.0_60/bin/java/

в файл ~/.bashrc вместо /etc/bash.bashrc. Возможно, вам придется перезапустить, чтобы изменения произошли.

Если это работает, и вы все еще хотите, чтобы изменения были общесистемными, тогда добавьте переменную PATH в /etc/environment, чтобы в ней был путь к Java.

.
1
27.01.2020, 21:23

Для восстановления вашего /etc/bash.bashrc до исходного состояния (если вы не помните, что это такое), вы можете сделать:

sudo rm /etc/bash.bashrc
sudo apt-get -o Dpkg::Options::="--force-confmiss" install --reinstall bash

Иначе @ответапрад046 покажется вам лучшим решением.

.
2
27.01.2020, 21:23

Теги

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