env -i somecommand
выполнения somecommand
в пустой среде. Можно поместить аргументы после somecommand
. Если PATH
стирается, необходимо будет указать полный путь к somecommand
. Кроме того, можно сохранить PATH
или установленный другое значение.
env -i PATH="$PATH:/another/directory" somecommand
Если бы Вы хотите иметь ту же среду, которую Вы имели бы после входа в систему, сохранить всего несколько переменных и загрузить Ваш .profile
установить остальных. При использовании другой оболочки входа в систему (колотите с .bash_profile
, csh с .login
, и т.д.), адаптируйтесь соответственно.
env -i HOME="$HOME" PATH=/usr/local/bin:/usr/bin:/bin USER="$USER" \
sh -c '. ~/.profile; "$@"' _ somecommand
С другой стороны, можно предпочесть удалять некоторые переменные из среды. env -u VAR1 -u VAR2 somecommand
удаляет VAR1
и VAR2
от среды и выполнений somecommand
. В соответствии с Linux, можно использовать env -0 | tr '\n\0' '.\n' | sed 's/=.*//'
произвести список переменные среды с одним именем на строку, подходящий для фильтрации. На других вариантах Unix, env | sed 's/=.*//'
делает то же задание, с ограничением, что оно может найти ложные положительные стороны, если значения некоторых переменных содержат новые строки.
я предполагаю, что мой вопрос состоит в том, где конфигурационные файлы для заполнения клавишей Tab расположены в системе Ubuntu?
В Ubuntu, библиотека завершения удара живет в /usr/share/bash-completion/bash_completion
.
при запуске оболочки эта библиотека может быть получена различными способами, например,
~/.bashrc
-> /etc/bash_completion
-> /usr/share/bash-completion/bash_completion
/etc/profile
-> /etc/profile.d/bash_completion.sh
-> /usr/share/bash-completion/bash_completion
, Если кто-либо имел эту определенную проблему или видит явно, что я не могу, как зафиксировать это, и/или почему это произошло бы? (Я всегда хочу знать почему.)
я недавно ответил связанный вопрос в AskUbuntu (и нашел ваш вопрос в процессе), поэтому там ищите детали, но короче говоря это известная ошибка .
Для исправления можно выполнить следующие действия:
Заменить
[[$ {! 2} =\$ *]] & & eval $2 = $ {! 2}
с
[[$ {! 2} =\$\' *]] & & eval $2 = $ {! 2}
в функции _ quote _ readline _ by _ ref
в файле /usr/share/bash-completion/bash _ completion
(не рекомендуется); или
Проверьте последнюю версию Git библиотеки bash-complete и используйте ее - ошибка, похоже, исправлена в этой версии.
Вы не получите завершения табуляции внутри подстановки команд, снова работая с любым из этих решений, но, по крайней мере, вы больше не увидите этого сообщения об ошибке.
Чтобы фактически завершить работу над подстановкой команд, необходимо либо вернуться к более ранней версии Bash (, где, как я слышал, она работала ), либо дождаться, когда библиотека исправит эту проблему с помощью Bash 4.3.