0
sh 쉘에서 스크립트를 만들었습니다.인수 변수 설정 해제
#script.sh
echo $1
if [ x$1 = 'x' ]
then
echo CODE1
else
echo CODE2
fi
1) 내가 다시 다음 . ./script.sh
사용 후 내가 그것을 실행하면 . ./script.sh arg1
OUTPUT: arg1
CODE2
3)처럼 실행하는 경우)
2 . ./script.sh
OUTPUT: CODE1
사용하여 실행하고있는 경우 그것은 나를 준다
OUTPUT: arg1
CODE2
3 번째 쉘은 동일한 셸에서 3 번째로 실행되고 있으므로 $ 1은 할당 해제되지 않고 3 번째는 actully가 2 번째로 설정된 $ 1 값을 사용하기 때문에 제 3의 출력이 2 번째와 같다고 생각합니다.
하지만 unset 1을 사용하여 할당을 해제하면 쉘에서 알 수없는 식별자로 오류가 발생합니다.
어떻게이 환경 변수 $ 1을 (를) 할당 해제 할 수 있습니까? 또는 어떻게 null로 설정할 수 있습니다.
당신이 맞습니다. 하지만 현재 셸에서 스크립트를 실행하고 싶습니다. 그 이유는 변수를 할당 취소하려는 이유입니다. –
흠, 괜찮아. 나는 당신이하는 행동을 보지 못합니다. 이런 식으로 행동하는 쉘은 어떤 것을 사용합니까? –