Переместить файлы времени выполнения bash в произвольный каталог

Как было кратко указано в комментариях , pingотображает это сообщение в stderr, которое вы не перенаправляли. Сделайте это с помощью:

...
ping -c1 pi$i.local > /dev/null 2>&1
...

1
15.07.2020, 00:27
2 ответа

Не существует единственной опции конфигурации, которая заставляла бы Bash использовать файлы конфигурации в указанном каталоге. Вы можете использовать --rcfile, чтобы указать Bash к заданному .bashrc, как описано вman bash:

   --rcfile file
          Execute commands from file instead of the standard
          personal initialization file ~/.bashrc if the shell is
          interactive (see INVOCATION below).

например:

bash --rcfile ~/.config/bash

Вы можете установить для переменной оболочки HISTFILEзначение ~/.cache/bashhistoryв~/.config/bash:

HISTFILE=~/.cache/bashhistory

И вы всегда можете создать символическую ссылку на данный файл в ~/.config в случае других файлов конфигурации, например, для того, чтобы иметь возможность редактировать ~/.config/profile вместо~/.profile:

ln -s ~/.profile ~/.config/profile

В крайнем случае вы также можете установить $HOMEна ~/.configи поместить все файлы конфигурации с неизмененными именами в ~/.config, а затем просто запустите bash вот так:

$ echo HOME_CHANGED=1 >> ~/.config/.bashrc
$ HOME=~/.config bash
$ echo $HOME_CHANGED
1

(Обратите внимание, что $здесь — командная строка подсказка используется для обозначения начала новой строки, а не части команды ).

0
19.03.2021, 02:26

Если вы не хотите использовать ссылки, вам придется пересобрать bash из исходного кода, исправив путь по умолчанию ~/.bashrc ~/.bash _профиля в shell.c.

Главный недостаток :вам придется периодически повторять этот процесс в соответствии с обновлениями bash...

0
19.03.2021, 02:26

Теги

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