새 셸을 시작하고 새 환경 변수를 전달하고 종료할 때까지 작업하려면 어떻게 해야 합니까?

새 셸을 시작하고 새 환경 변수를 전달하고 종료할 때까지 작업하려면 어떻게 해야 합니까?

구입한 상용 애플리케이션과 상호 작용하려면 특별한 셸 환경을 설정해야 합니다. 애플리케이션에서 "즉시" 환경을 쿼리할 수 있습니다.

그래서 명령이 전달된 스크립트를 사용하여 셸을 시작하려고 했습니다.

/bin/bash -c '/opt/xyq/commercialApp/bin/tool getEnv > ~/setAppEnv; . ~/setAppEnv; . ~/setMyEnv;'

이것은 작동합니다... 특별한 환경을 얻고, 얻은 다음, 나만의 환경을 얻습니다... 그러나 쉘은 종료됩니다.

종료할 때까지 두 번째 bash 쉘에 그대로 유지하려면 어떻게 해야 합니까?

답변1

이를 사용하여 시작 --rcfile시 대안을 지정할 수 있습니다. .bashrc이는 설정에서 사용할 수 있습니다.

/opt/xyq/commercialApp/bin/tool/getEnv > ~/setAppEnv
cat ~/setMyEnv >> ~/setAppEnv
bash --rcfile ~/setAppEnv

이것도 로드하려면 .bashrc명령 뒤에 추가하면 됩니다 cat. 그런 다음 함수로 바꿀 수 있습니다.

runApp()
{
  /opt/xyq/commercialApp/bin/tool/getEnv > ~/setAppEnv
  cat ~/setMyEnv >> ~/setAppEnv
  echo '[[ -e ~/.bashrc ]] && . ~/.bashrc' >> ~/setAppEnv
  bash --rcfile ~/setAppEnv
}

답변2

이건 어때? 새로운 bash를 시작하고 새로운 환경 변수를 설정합니다.

/bin/bash -c '/opt/xyq/commercialApp/bin/tool getEnv > ~/setAppEnv; . ~/setAppEnv; . ~/setMyEnv; bash'

관련 정보