예상치 못한 소스(오류) 동작

예상치 못한 소스(오류) 동작

내 홈 디렉토리에 Raspberry Pi 주소가 있는 파일이 있습니다 pi.

pi=192.168.0.173

Pi에 연결하려면 홈 디렉터리에서 다음을 수행합니다.

. pi && ssh pi@$pi

효율적인. 그런 다음 다음 스크립트로 개선했습니다 ~/bin.

#!/bin/bash
. ~/pi
ssh pi@$pi

이제 나는 이것을 한다:

pi

물론 작동합니다. 하지만 때로는 Pi IP가 필요합니다. 그런 다음 홈 디렉토리에서 다음을 수행합니다.

. pi

하지만 파일을 가져오는 대신 Pi에 연결하고 있습니다. 상황을 더욱 이상하게 만들기 위해,

$ . pi && echo ok
pi@raspberrypi:~ $ logout
Connection to 192.168.0.173 closed.
ok

zsh나는 모두 dash에서 동일한 동작을 얻습니다 및 sh. 누군가 이것을 설명할 수 있나요?

답변1

man이 모든 것을 알아두세요...Bash에서 가져온 것입니다.

소스 파일 이름 [파라미터]
      현재 쉘에서 파일 이름의 명령을 읽고 실행하십시오.
      환경을 종료하고 마지막 명령 exe의 종료 상태를 반환합니다.
      파일 이름에서 제거되었습니다.  파일 이름에 슬래시가 포함되어 있지 않으면
      PATH의 파일 이름은 다음을 포함하는 디렉터리를 찾는 데 사용됩니다.
      파일 이름.  PATH에서 검색된 파일은 실행 가능하지 않아도 됩니다.
      Bash가 posix 모드가 아닌 경우 현재 디렉터리는 다음과 같습니다.
      PATH에서 파일을 찾을 수 없으면 검색이 수행됩니다.  소스 경로 옵션인 경우
      shopt 내장 명령이 꺼져 있고 경로가 없습니다.
      검색되었습니다. 인수가 제공되면 양수 값이 됩니다.
      filename을 실행할 때의 매개변수입니다. 그렇지 않으면
      위치 매개변수는 변경되지 않습니다. 반품상태는
      스크립트의 마지막 명령의 종료 상태(없으면 0)
      명령이 실행됨), 파일 이름을 찾을 수 없으면 false를 반환합니다.
      읽을 수 없습니다.

관련 정보