2017-12-03 11 views
1

나는 방글라데시 제어 VM에서 Fish를 실행 중입니다. VM 특정 구성이 덤프되는 곳으로 ~vagrant을 사용하려고합니다. 즉, 내 $HOME입니다. 나는 /vagrant을 호스트와 공유하는 디렉토리로 사용하고 있으며, 항상 그곳에 있기를 원합니다.물고기가 집이 아닌 다른 디렉토리에서 시작하도록하십시오.

VM에 로그인 할 때 Fish에서 나를 /vagrant/으로 보내 주시기 바랍니다.

배시에서는 cd /vagrant/~/.bashrc에 넣으면됩니다. 그러나 another question about changing directories in Fish이 있으며, cd /vagrant/~/.config/fish/config.fish에 넣는 것은 Fish가 암시 적으로 모든 명령에서 평가할 것이기 때문에 실수 일 수 있습니다. (나는 그 질문에 덧붙여지지 않았다. 왜냐하면, 나는 다른 방법을 원할 때 도청 된 사용자 환경을 표준 디렉토리에서 시작하는 것으로 보였기 때문이다.)

누군가 물고기를 만드는 가장 좋은 방법을 명확히 할 수 있는가? 비 디렉토리에서 사용자를 시작 하시겠습니까?

답변

3

나는 당신이 좋아 당신은 문제의이 댓글을 참조한다고 가정 :

아니, 그러지 마! config.fish에 cd를 추가하면 평일에 을 사용할 수 있지만 물고기 셸 스크립트를 실행하기 전에 물고기가 CD를 실행합니다.

그리고 그것은 가능한 한 사실입니다. config.fish 스크립트는 대화식인지 여부에 관계없이 모든 물고기 프로세스에서 읽습니다. 당신이 이전 버전을 실행하는 경우 status -i을 사용해야 할 수도 있습니다

if status is-interactive 
    cd /vagrant 
end 

참고 :이 처리하는 방법은 쉘이 상호 작용하는 경우 CD를 할 경우에만하는 것입니다.

또한 명확하지 않은 경우 실제로는 $HOME이 변경되지 않으므로 물고기가 개인 자동로드 기능을 찾는 위치 나 명령 기록을 저장하는 위치는 바뀌지 않습니다. 따라서 "VM 별 구성이 덤프되는 곳에서 ~ 여동생을 사용"하고 싶다면 홈 디렉토리를 실제로 변경해야합니다. 또는 cd 명령을 실행하는 것 외에도 HOME을 설정하십시오.

+0

if status is-interactive'는 정확히 내가 찾고있는 것입니다. 감사! –