예를 들어 다음과 같은 변수가 포함된 파일이 있습니다.
문서
DEVICE0_USB="usbSerialNo1"
DEVICE1_USB="usbSerialNo2"
이 변수의 내용을 스크립트의 변수에 할당하고 싶습니다. 예를 들면 다음과 같습니다.
스크립트
FAX_MACHINE_USB=$DEVICE0_USB
COFFEE_MAKER_USB=$DEVICE1_USB
그래서 내가 echo
$FAX_MACHINE_USB
받았을 때usbSerialNo1
source
다음을 사용하여 변수를 얻을 수 있습니다 .문서그러나 이것은 또한 모든 라인을 실행합니다문서. 내 경우에는 이것이 문제가 되지 않는다. 왜냐하면문서변수선언만 있는데 아직은 그러고 싶지 않네요. 이것을 달성하는 다른 방법이 있습니까?
답변1
비슷한 질문에 대답하는 것 같습니다여기.
물론 원하는 경우 변수를 사용 .
하거나 할당할 수 있지만 파일의 특정 행만 사용 하거나 실행할 source
수도 있습니다.awk
grep
바라보다가변 감속과 같습니다.
다양한 변수에 대처하는 방법
에 모든 변수를 할당하려면
script1.sh
다음을 고려하세요.source <(grep -E '^\w+=' script1.sh)
이는 변수 할당처럼 보이는 모든 줄을
grep
추출 하는 데 사용됩니다 .script1.sh
그런 다음 이 행은 현재 셸에서 실행되고 변수가 할당됩니다.이 방법을 사용하는 경우 먼저 모든 변수가 필요한지, 수행 중인 작업을 방해하는 변수가 없는지 확인하십시오. 그러한 경우가 있으면
grep
두 번째 명령을 사용하여 제외할 수 있습니다.각 부분을 차례로 고려하십시오.
source file
file
현재 쉘에서 실행되도록 쉘에 지시합니다.
<(...)
프로세스 대체라고 합니다. 이를 통해 파일 이름 대신 명령의 출력을 사용할 수 있습니다.이 명령은
grep -E '^\w+=' script1.sh
변수 할당처럼 보이는 모든 줄을 추출합니다. 명령줄에서 이 명령을 단독으로 실행하면 다음과 비슷한 내용이 표시됩니다.variable="Hello" var2="Value2"
등. 먼저 이 작업을 수행하고 출력을 확인하여 실행하려는 라인이 맞는지 확인해야 합니다.