Возможно, вы захотите взглянуть на команду alias
и set
. При запуске без параметров alias
будут перечислены все определенные параметры и set
перечислены все переменные и функции. Перенос вывода этих команд во временный файл и последующее указание bash прочитать этот файл как файл rc может выполнить то, что вы ищете.
Child bash идентичен вызывающему родителю
323
Andrew Wood
Можно ли вызвать bash, чтобы в новой оболочке присутствовало все, что касается моего окружения (псевдонимы, функции, экспортированные / неэкспортированные переменные и т. Д.)?
Я бы согласился на получение переменных оболочки, которые не являются частью моего окружения. Я бегу, bash --norc
и первое, что я замечаю, я потерял $ PS1 и свои ls
цвета. Я мог бы просто экспортировать эти переменные перед вызовом bash
, но я беспокоюсь о множестве других вещей, которые я мог бы пропустить.
2 ответа на вопрос
1
cledoux
Это самое близкое, что я когда-либо был, но я наконец-то понял, что то, чего я действительно хочу, невозможно. Я хочу написать сценарий Perl, который устанавливает мою среду. Он будет делать что-то, устанавливать переменные и, наконец, `exec bash`. Я не могу позволить, чтобы окружение было испорчено rc init файлами, но я хочу такие вещи, как ls раскраска и спуск PS1. Я думаю, что, возможно, лучше всего сделать так, чтобы скрипт Perl печатал изменения среды, и чтобы пользователь вызывал его с обратными галочками.
Andrew Wood 13 лет назад
0
в зависимости от сложности сценария perl, пусть он напишет свой временный rc-файл, а затем вызовет bash с помощью: bash --rcfile Это не загрузит общесистемный или пользовательский rc-файл, а только указанный файл.
cledoux 13 лет назад
0
Я был на полпути к тому, чтобы сделать именно это, когда понял, что у скрипта не будет доступа к псевдонимам и функциям его родителя - только к его среде.
Andrew Wood 13 лет назад
0
0
grawity
Нет.
Однако вы можете включить автоматический экспорт функций и переменных, добавив их set -a
в начало вашего rc
скрипта.
Похожие вопросы
-
2
.profile в Mac OS X?
-
1
Приостановить все, кроме x задач, интенсивно использующих процессор
-
10
Как я могу найти в истории bash и повторно запустить команду?
-
-
2
Можно ли передать выходные данные одной команды двум другим командам?
-
8
Переименуйте группу файлов одной командой
-
2
Почему мой путь не обновляется * сейчас *?
-
5
Как удалить символическую ссылку на каталог?
-
8
Спаси меня от бессмысленного терминала
-
9
Как можно добавить номер строки и табуляцию к каждой строке текстового файла?
-
1
Когда я должен положить конфигурации в .bashrc против. .bash_profile?