나는 다음과 같은 작은 간단한 스크립트를 시도했다.
#!/bin/bash
$1="bar"
echo $1
그러나 내가 실행할 때 ./script foo
오류가 발생하고 값이 변경되지 않습니다.
/home/mika/script: line 2: foo=bar: command not found
foo
나는 당신이 당신의 스크립트에 전달하는 첫 번째 논쟁은 $ 1이라는 것을 알고 있습니다. 그러나 이것조차도 나는 그 가치를 바꾸고 싶다.
답변
답변
해당 변수를 직접 변경할 수 없습니다. 넌 말할 수있다:
x=$1
echo $x
그런 다음 $x
대신 사용할 수 있습니다
를 사용하면 $1=bar
을 첫 번째 매개 변수로 즉시 대체 $1
할 수 있으며, 기본적으로 "foo=bar"
이며 변수 “foo”가 아니라 “foo”명령으로 해석됩니다.
답변
사용을 사용하지 마십시오 $1
,이에 대한bash
및 기타 쉘$1
는 스크립트에 전달하는 첫 번째 인수입니다.
#!/bin/bash
echo $1
위와 같이 실행 하면 첫 번째 인수이므로 foo.sh hello
인쇄됩니다 hello
. 또한 변수를로 참조 var
하고 변수의 내용을 로 참조하십시오 $var
. 따라서 예상되는 동작을 얻으려면 변수에 다른 이름을 사용하고 $
다음을 사용하지 마십시오 .
#!/bin/bash
var="bar"
echo $var