KSH에서 TELESET을 사용하여 단순히 변수를 설정하는 것 사이에 차이가 있습니까?
문제
다음 2 줄은 완전히 동일합니까? 차이점이 아니라면? 나는 많은 쉘 스크립트가 숫자 1을 사용하는 것을 보았고 2 번과 비교할 때 그것이 무엇을 주는지 궁금해했습니다.
typeset TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
TARGET="${XMS_HOME}/common/jxb/config/${RUNGROUP}.${ENV}.properties"
해결책
typeset
로컬 변수를 생성합니다 ( "누출되지 않는"). 이것은 함수에 유용하지만 쉘 스크립트의 최상위 레벨에서 사용되는 것을 보았습니다.
a=0
function x {
typeset a=1
}
x
echo $a
function y {
a=2
}
y
echo $a
인쇄 할 것입니다
0
2
당신은 또한 사용할 수 있습니다 typeset
배열과 정수를 생성합니다.
편집하다 추가 function
일부 쉘에 필요하기 때문에 키워드. 쉘을 화나게하면 제거하지만 대부분의 버전에서 작동해야합니다.
다른 팁
Shell 스크립팅은 느슨하게 입력 된 언어 (변수에 datytype가없는)이므로 Typset을 사용하여 특정 변수를 설정하여 유사한 데이터 유형의 값 만 가져갈 수 있습니다.
제휴하지 않습니다 StackOverflow