여러 쉘 기능에 대한 stdin 리디렉션 [닫기]

여러 쉘 기능에 대한 stdin 리디렉션 [닫기]

이 스크립트가 내가 원하는 대로 작동하도록 하려면 어떻게 해야 합니까?

#!/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

[커버 페이스]

관련 정보