NodeJs 애플리케이션의 경우 애플리케이션을 배포하기 위해 다음 스크립트를 작성했습니다.
"scripts": {
"deploy": "source private/create_env.sh && ./deploy.sh",
}
private/create_env.sh
스크립트에 사용되는 환경 변수를 만듭니다 deploy.sh
.
export USERNAME=alphonsio
export SERVER=ftp.example.com
export ...
결합자는 &&
배포.sh 스크립트에서 환경 변수를 사용할 수 없도록 합니다.
배포 스크립트에서 이를 사용 가능하게 하려면 어떻게 해야 합니까?
답변1
귀하의 문제는 다음과 관련이 없다고 생각합니다 &&
.
/bin/sh
일반적으로 The Shell을 모방하려는 다른 쉘이 있습니다. 많은 배포판에서는 를 지원하는 /bin/bash
for를 사용합니다 .sh
source
그러나 Ubuntu에서는 /bin/dash
지원되지 않습니다 source
. 대부분의 쉘은 .
대신 을 사용합니다 source
. 이러한 시스템 중 하나를 사용하는 경우 파일을 source
다음으로 바꾸십시오..
package.json
"scripts": {
"deploy": ". private/create_env.sh && ./deploy.sh",
}
답변2
&& 결합자는 배포.sh 스크립트에서 환경 변수를 사용할 수 없도록 방지합니다.
아니요, 없습니다.
내가 이것을 가지고 있다면 create_env.sh
:
#!/bin/sh
export SOME_CUSTOM_VAR=foo
이와 같이 deploy.sh
:
#!/bin/sh
echo "Value is: $SOME_CUSTOM_VAR"
그런 다음 다음을 실행하십시오.
source create_env.sh && ./deploy.sh
생산:
Value is: foo