Mac OS X에서 시작 시 실행되는 쉘 스크립트가 모든 명령을 실행하지 않습니다.

Mac OS X에서 시작 시 실행되는 쉘 스크립트가 모든 명령을 실행하지 않습니다.

OS X에서는 다음을 사용해 보았습니다.링곤시작 시 쉘 스크립트를 실행하십시오. ~/desktop/_admin/boot/bootdocker.sh 파일이 있습니다.

#!/bin/bash
boot2docker up
export DOCKER_HOST=tcp://192.177.59.103:2475

내 질문은 다음 중 하나를 사용하여 명령줄에서 스크립트를 실행하는 경우입니다.

$bash bootdocker.sh
$./bootdocker.sh
$sh bootdocker.sh

첫 번째 명령은 실행하지만 DOCKER_HOST 변수를 내보내는 두 번째 명령은 실행하지 않습니다.

내가 저지르고 있는 실수를 누가 볼 수 있나요?

답변1

생성하는 모든 쉘에 대해 이를 설정 하려면 이를 또는 $DOCKER_HOST에 병합해야 합니다 ..bashrc.bash_profile

노트:하위 프로세스가 상위 프로세스의 환경을 향상시킬 수 없기 때문에 당신이 하려는 일은 결코 작동하지 않을 것입니다.

boot2docker다음과 같이 사용할 수 있습니다.

$ eval $(boot2docker shellinit)

shellinitto 동사 는 boot2dockerv1.2.0의 새로운 동사이며 setup 에 사용됩니다 $DOCKER_HOST. 이를 그대로 실행하면 다음과 같은 출력이 생성됩니다.

$ boot2docker shellinit
    export DOCKER_HOST=tcp://192.168.59.103:2375

답변2

두 번째 명령은 올바르게 실행되지만 스크립트가 하위 쉘(하위 프로세스)에서 실행되므로 실행 후 반환된 상위 쉘은 환경 변수를 상속하지 않습니다.

답변3

var를 얻으려면 $DOCKER_HOST다음을 실행해야 합니다.

. ./bootdocker.sh

그건

  • ."입력할 때 이 파일 사용"을 의미하는 점
  • ./bootdocker.sh파일은 로컬에서 검색됩니다.

관련 정보