스크립트를 실행할 때마다 변수 이름을 변경해야 합니다. 변수가 있다고 가정 해 봅시다
a="foo"
echo "Value is : $a"
그것은 인쇄됩니다
Value is foo
하지만 같은 스크립트에서 변수 값을 변경하고 있습니다.
a="bar"
스크립트를 다시 실행하면 인쇄됩니다.
Value is bar
유닉스에서 이것을 달성할 수 있나요?
답변1
이 줄은 $a="bar"
오류 메시지를 표시합니다.
bash: foo=bar: command not found
a
문자열로 설정하려면 를 bar
사용하십시오 a="bar"
.$a
값변수 a
는 $a="bar"
의미가 없습니다.
스크립트를 실행할 때마다 값을 변경하려면 최소한 두 가지 작업을 수행할 수 있습니다.
a
환경 변수를 만듭니다 . 이는a
스크립트 외부에서 설정했음을 의미합니다export
.export a="bar"
a
그런 다음 평소대로 스크립트를 실행합니다( 먼저 환경에서 상속된 값을 덮어쓰지 않도록 수정해야 합니다 ). 당신은 또한 사용할 수 있습니다a="bar" ./myscript.sh
스크립트에 대해서만 변수를 설정합니다(즉, 호출 셸에서 변수로 만들지 않습니다).
스크립트가 명령줄에서 값을 가져오도록 하여 다음과 같이 스크립트를 호출하세요.
./myscript.sh "bar"
그러면 스크립트가 수행됩니다.
a="$1"
a
명령줄 매개변수에서 값을 설정합니다. 여기서는$1
"첫 번째 명령줄 인수"를 의미합니다.
어떤 방법을 사용하든 값이 "$a"
다음과 같은지 확인하고 싶을 수도 있습니다.합리적인(즉, 유효한 데이터를 포함) 사용하기 전에.