이 스크립트가 내가 원하는 대로 작동하도록 하려면 어떻게 해야 합니까?
#!/bin/bash
function One()
{
IFS='' read -r -n1 CHAR
echo "One: '$CHAR'"
Two
}
function Two()
{
IFS='' read -r n1 CHAR
echo "Two: '$CHAR'"
}
One < MyFile.txt
무엇인가요~해야 한다일어나는 일은 One()
첫 번째 문자를 읽은 MyFile.txt
다음 Two()
두 번째 문자를 읽는 것입니다. 그러나 Two()
항상 null 문자를 읽는데 그 이유를 모르겠습니다.왜... 어떤 팁이 있나요?
# bash -x Test.sh
+ One
+ IFS=
+ read -r -n1 CHAR
+ echo 'ONE: '\''S'\'''
One: 'S'
+ Two
+ IFS=
+ read -r n1 CHAR
Two: ''
답변1
가아! 방금 알아냈어...그렇지좋다다른 함수를 호출하면 리디렉션이 재설정됩니다. 그러나 그것은 진실이 아니다. 이것진짜질문은 더욱 멍청합니다.
IFS='' read -r n1 CHAR
대시 하나가 누락되었습니다!
IFS='' read -r -n1 CHAR
[커버 페이스]