BASH: 매개변수를 첨자에 전달

BASH: 매개변수를 첨자에 전달

다음과 같은 스크립트가 있습니다.

#!/bin/bash

. config

./sub-script

구성에는 많은 변수가 있으며 이를 ./subscript arg1 arg2 ... arg100500.
source

아래 첨자에서 구성을 사용할 수 있도록 하는 다른 방법이 있습니까?

답변1

이렇게 스크립트를 설정할 수 있다면

#!/bin/bash

. config

. /path/to/sub-script

초기화된 모든 변수는 config기본 스크립트와 해당 변수가 시작된 모든 스크립트에서 사용할 수 있어야 합니다.

설명하다

스크립트가 새로운 비대화형 셸 프로세스를 시작하고 상위 스크립트에서 초기화된 셸 변수를 사용할 수 없는 것으로 보입니다. 하지만 내보낸 환경 변수는 새 하위 프로세스에서 사용할 수 있어야 합니다.

답변2

export변수를 만들 수 있습니다 .

 VAR=foo
 export VAR

또는:

 export VAR=foo

그러나 이러한 변수는 모든 하위 프로세스의 환경에서 볼 수 있습니다.

답변3

구성 파일의 전체 경로 이름을 아래 첨자에 전달할 수 있습니다. 예를 들어:

#!/bin/bash

. ./config

./sub-script ./config

그런 다음 아래 첨자는 다음과 같은 작업을 수행할 수 있습니다.

cfg="$1"
shift
. "$cfg"

비어 있는 $cfg경우 기본값을 지정할 수도 있습니다 .$1

cfg=${1:-/path/to/default/config}

관련 정보