(Я говорю о Рыбе- ракушке , особенно Рыба Рыбы .)
Для Bash / ZSH у меня были ~/.profile
некоторые экспорты, псевдонимы и другие вещи.
Я не хочу иметь отдельную конфигурацию для переменных среды для Fish, я хочу повторно использовать мою ~/.profile
. Как?
В FAQ указано, что я могу, по крайней мере, импортировать их через /usr/local/share/fish/tools/import_bash_settings.py
, однако мне не очень нравится запускать их для каждого экземпляра Fish.
usermod -s /usr/local/bin/fishlogin $USER
составляетchsh -s /usr/local/fishlogin $USER
chsh: /usr/local/bin/fishlogin: non-standard shell
нужно добавить это/etc/shells
fish "$@"
следует заменить наexec -l fish "$@"
.exec
заменяет процесс bash на fish, в то время как-l
причинаargv[0]
для fish - это означает-fish
, что это оболочка входа в систему.Мое текущее решение (см. Здесь, возможно, более свежую версию):
источник
Для более чистого решения вы можете использовать внешний плагин env :
источник
Вы можете использовать bass , плагин для выполнения команд bash в fish.
Установите бас .
А затем просто вставьте это в свой
config.fish
:источник
.profile
что слишком много происходит.bass
с другой стороны, интерпретирует любой скрипт оболочки bash и заставляет их запускаться в fish. Это, конечно, будет немного больше накладных расходов, но, по моему опыту, совершенно незначительно, но ваш пробег может отличаться.Я попытался найти .profile при запуске рыбы, и это сработало для меня как шарм.
просто сделать :
Перезапустите терминал или iterm2, проверьте псевдоним
.profile
для проверки.Примечание: не будет работать с более сложными файлами .profile, которые используют синтаксис, недоступный в fish - credit @erb
источник
.profile
файлами, которые используют синтаксис, недоступный в fish.Установите
dash
и добавьте эту строку в вашconfig.fish
:источник
dash
- простоsh
сделаю (что, вероятно, тире)Ты не можешь
fish
синтаксис слишком отличается от/bin/sh
синтаксиса Bourne shell ( ). Это та же самая причина, которую вы не можете использовать.profile
с другими оболочками, не производными от Борна, такими какcsh
иtcsh
.источник
.profile
. Я просто хочу получить всеexport
оттуда. Одним из простых способов было бы то,egrep "^export"
что было бы достаточно хорошо для меня. Другое, более правильное решение было бы это . Кроме того, я, например, мог запустить этотimport_bash_settings.py
скрипт, который, вероятно, делает что-то подобное Так что, очевидно, есть много способов сделать это. С моим вопросом здесь мне было интересно, как другие решили это.Если ваш дистрибутив использует PAM , вы можете установить переменные окружения в своем
~/.pam_environment
файле.источник
Вы можете начать Рыбу из Баш. Если вы сделаете это, Fish унаследует все переменные окружения (
export FOO=bar
) от Bash. На данный момент Bash уже прочитал ваш.profile
(или тому подобное).источник