값이 할당된 프로덕션 환경에서 스크립트를 실행하고 있지만 여기와 다른 값을 사용하고 싶습니다.
myscript.sh
a=20181214
....
export a=20181212
나는 이 스크립트를 사용 하고 싶기 때문에 이 스크립트를 호출한 다음 이 스크립트를 호출합니다 20181212
. 그러나 값을 선택할 때마다 20181214
.
답변1
스크립트를 수정할 수 있는 경우 표시되도록 수정하세요.
a=${a:-20181214}
이렇게 하면 이전에 설정된 값을 사용하게 됩니다 a
. 또는 비어 있거나 변수가 설정되지 않은 20181214
경우입니다 . $a
이것은표준 매개변수 확장.
그런 다음 사용할 수 있습니다
export a=20181212
./script.sh
또는
a=20181212 ./script.sh
후자는 호출 환경에서 변수를 설정하지 않고 스크립팅 환경에 대해서만 설정합니다.
만약 너라면할 수 없다a
무엇을 하든 스크립트가 항상 값을 덮어쓰도록 스크립트를 수정하세요 . 이 경우, 스크립트를 관리하는 사람에게 연락하여 상황을 설명해주세요. 최악의 상황이 발생하면 사용 중인 스크립트의 복사본을 사용하세요.할 수 있는스크립트가 특정 위치에 있기를 원하지 않는다고 가정하여 편집하십시오.
답변2
스크립트는 다른 쉘에서 실행됩니다. 이 명령은 export A
현재 쉘에 대한 변수만 설정합니다. 스크립트 상단에서 변수를 내보낼 수 있으며 나머지 환경에는 영향을 미치지 않습니다. 예를 들어
~$ export A=a
~$ echo $A
a
동일한 셸에서 test.sh 스크립트를 생성하는 경우
#!/bin/bash
export A=b
echo $A
출력은 "b"이지만 셸의 A 값은 변경되지 않습니다.