최근에 ksh93 쉘로 전환했습니다. 나는 몇 가지 간단한 스크립트 내가 이해하지 못하는 방식으로 오작동 시작되었는지 않았기 때문에 내 .profile 파일새뱅이 다른 쉘을 참조 할 때 이상한 스크립트 동작
export SHELL=/usr/local/bin/ksh93
exec $SHELL
에 다음 두 줄을 추가하여 이런 짓을. 내가 명령 test.sh fred
를 입력하면 내가라고 다음과 같은 간단한 스크립트로 좁혀 나가 동일한 출력 test.sh fred
을 보여야하는데
#!/bin/ksh
echo $0 $1
test.sh
을 말한다. 대신 test.sh noglob
이 표시됩니다. 내가 약자를 제거하거나 #!/usr/local/bin/ksh93
으로 변경하면 스크립트가 예상대로 작동합니다.
아무도 무슨 일이 일어나고 있는지 또는 어떻게해야 할 지 설명 할 수 있습니까? 나는 혼란 스럽다.
차이점이 있으면 Solaris 5.9를 사용하고 있습니다.
'/ bin/ksh'에 무엇이 있습니까? 아마도'$ 1'의 값을 어떻게 든 부주의 한 것으로 대체하는 쉘 스크립트 일 것입니다. – tripleee
@tripleee/bin/ksh는 korn 쉘입니다 (ksh93으로 전환하기 전에 사용하고 있던 쉘) – john
'/ bin/ksh -x -c 'echo "$ 0" "$ 1"''을 실행하면 어떻게됩니까? – tripleee