(I 쉘에 대해서 이야기하고 물고기 ESP. 물고기의 물고기 .)
Bash / ZSH의 경우 ~/.profile
수출, 별칭 및 기타 것들이있었습니다.
Fish의 환경 변수에 대한 별도의 구성을 원하지 않고 내 재사용을 원합니다 ~/.profile
. 방법?
FAQ에는 적어도을 통해 가져올 수 있다고 명시되어 /usr/local/share/fish/tools/import_bash_settings.py
있지만 각 물고기 인스턴스마다 실행하는 것을 좋아하지 않습니다.
답변
Bash를 사용하여 / etc / profile 및 ~ / .profile을 구문 분석 한 다음 물고기를 시작할 수 있습니다.
-
/usr/local/bin/fishlogin
내용으로 작성#!/bin/bash -l exec -l fish "$@"
-
그것을 실행 가능하게 만드십시오
sudo chmod +x /usr/local/bin/fishlogin
-
/ etc / shells에 추가
echo /usr/local/bin/fishlogin | sudo tee -a /etc/shells
-
기본 쉘로 설정
sudo usermod -s /usr/local/bin/fishlogin $USER
답변
내 현재 솔루션 ( 아마도 최신 버전 은 여기 참조 ) :
egrep "^export " ~/.profile | while read e
set var (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\1/")
set value (echo $e | sed -E "s/^export ([A-Z_]+)=(.*)\$/\2/")
# remove surrounding quotes if existing
set value (echo $value | sed -E "s/^\"(.*)\"\$/\1/")
if test $var = "PATH"
# replace ":" by spaces. this is how PATH looks for Fish
set value (echo $value | sed -E "s/:/ /g")
# use eval because we need to expand the value
eval set -xg $var $value
continue
end
# evaluate variables. we can use eval because we most likely just used "$var"
set value (eval echo $value)
set -xg $var $value
end
답변
훨씬 깨끗한 솔루션을 위해 foreign env 플러그인을 사용할 수 있습니다 .
fenv source ~/.profile
답변
나는 물고기 시작에 .profile 소싱을 시도했고 그것은 나를 위해 매력처럼 작동했습니다.
그냥 해 :
echo 'source ~/.profile;clear;' > ~/.config/fish/config.fish
터미널 또는 iterm2를 다시 시작하고 별명 .profile
을 테스트하여 테스트하십시오.
참고 : fish에서는 사용할 수없는 구문을 사용하는 더 복잡한 .profile 파일에서는 작동하지 않습니다-credit @erb
답변
플러그인 bass 를 사용 하여 물고기에서 bash 명령을 실행할 수 있습니다 .
-
$ git clone https://github.com/edc/bass.git $ cd bass $ make install
-
그리고 나서, 이것을 당신의
config.fish
:bass source ~/.profile
답변
dash
이 라인을 설치 하고 추가하십시오 config.fish
:
env -i HOME=$HOME dash -l -c 'export -p' | sed -e "/PATH/s/'//g;/PATH/s/:/ /g;s/=/ /;s/^export/set -x/" | source
답변
당신은 할 수 없습니다. fish
의 구문이 Bourne 쉘 ( /bin/sh
) 구문과 너무 다릅니다 . 이것은 당신이 사용할 수있는 동일한 이유 .profile
와 같은 다른 비 Bourne의 유래 껍질로 csh
와 tcsh
.