bash 스크립트를 zsh의 컨텍스트에 추가할 수 있습니까?

bash 스크립트를 zsh의 컨텍스트에 추가할 수 있습니까?

최근에 bash에서 zsh로 마이그레이션했습니다.

세션의 개인 키를 얻기 token_refresh.sh위해 다음 스크립트를 사용했습니다 .ssh-add

#!/usr/bin/env bash
echo "configuring ssh access.."
eval "$(ssh-agent -s)"
ssh-add ./my-key

그러나 dir /ssh의 zsh에서 이 명령을 직접 실행할 수는 없습니다.

$ ls
my-key  my-key.pub  token_refresh.sh
$ . token_refresh.sh
.: no such file or directory: token_refresh.sh

다음을 사용하여 bash 스크립트를 실행할 수 있습니다.

bash token_refresh.sh

ssh-add그러나 이것은 bash 세션( bash 세션의 핵심) 을 시작한 다음 종료하는 것이 아닙니다 .

이 스크립트를 bash 및 zsh에서 이식 가능하게 실행하려면 어떻게 해야 합니까?

답변1

파일을 받을 때 경로를 언급해 주세요:

. ./token_refesh.sh

이는 도트 명령이 기본적으로 현재 디렉토리를 찾지 않는 쉘에서 필요합니다.

스크립트는 "도트 스크립트"(소스 코드를 가져오도록 설계됨)이므로 #!- 줄을 제거할 수 있습니다. 이 줄은 아무런 효과가 없으며 항상 주석으로 해석됩니다.

또한보십시오:

관련 정보