KornShell (ksh) 스크립트에서 IFS를 수정하기 전에 IFS를 저장하려고합니다. 백업 변수가 제대로 저장되지 않아서 문제를 재현 할 수있는 간단한 스크립트를 작성했습니다. 내가 OIFS 내가 공간 (040), 탭 (011)과 개행의 진수 ASCII 값입니다 IFS를 에코 때와 같은 일이 (012) 에코 때 내가 볼 것으로 예상 무엇KornShell (ksh)에서 IFS를 올바르게 저장하는 방법
#!/usr/bin/ksh
OFIS=$IFS
echo "$IFS" | od -b
echo "$OIFS" | od -b
. 그러나,이 출력은 다음과 같습니다 OIFS의 출력 그냥 줄 바꿈 (012)를 포함하는 동안 IFS 변수의 출력은, 세 개의 문자가 포함
0000000 040 011 012 012
0000004
0000000 012
0000001
공지있다. 내가 보았던 모든 포럼에서는 이것이 IFS 사본을 만드는 방법임을 나타 냈습니다. OIFS가 제대로 설정되지 않는 이유를 아는 사람이 있습니까?
#!/usr/bin/ksh
OFIS="$IFS"
echo "$IFS" | od -b
echo "$OIFS" | od -b
0000000 040 011 012 012
0000004
0000000 012
0000001
내가 AIX6에서 실행 해요 : 나는 또한 동일한 결과를과 같이 큰 따옴표로 $ IFS를 둘러싸는했지만, 얻었다.
당신은 자신을 걷어차 야합니다 : OFIS' = OIFS' –
나는 머리에서 몸을 차 기만큼 충분히 유연했으면 좋겠지 만, 벽에 부딪 치면 충분하다고 생각합니다. 감사합니다 :) – user2680121
+1 쉽게 소화 된 테스트 케이스. 오타에 대해 너무 나쁜 ;-) 모두에게 행운을 비네. – shellter