파일에 문자가 있는지 테스트하는 방법은 무엇입니까?

파일에 문자가 있는지 테스트하는 방법은 무엇입니까?

따라서 코드의 이 부분이 있습니다. 이름 파일만 비어 있으면 "해당 플레이어 없음"을 출력하고 싶습니다. test -s 명령을 사용해 보았지만 파일이 비어 있어도 0이 출력되거나 출력되지 않습니다. 이 문제를 어떻게 해결할까요?

       if [ $Target = m -o $Target = M ]
       then
       cut -c12-26,31-43 ./emplist > names
       grep $Name ./names
       if
       **[ -s  names ]**
       then
          :
       else
       echo "No such player"
       fi

기본적으로 파일에 이름이 있으면 이름을 출력하거나 "해당 플레이어 없음"을 출력하고 싶습니다. 파일에 이름이 없으면 "해당 플레이어가 없습니다"가 출력됩니다.

답변1

if [ "$Target" = m ] || [ "$Target" = M ];
then
   cut -c12-26,31-43 emplist > names
fi
if grep -qFe "$name" names; then
  echo "$name"
else
  echo >&2 "No such player";
fi

관련 정보