ls를 사용하여 파일 이름 목록을 인쇄하지만 찾을 수 없으면 빈 문자열을 반환하는 방법은 무엇입니까?

ls를 사용하여 파일 이름 목록을 인쇄하지만 찾을 수 없으면 빈 문자열을 반환하는 방법은 무엇입니까?

이름 파일이 있어요

  • 꽃.txt
  • 바다.txt

만약에

print ls *{hua,las}* > taka.txt 

taka.txt로 반환

ls hua.txt *las*

*las*나는 거기 있고 싶지 않아요 .

그냥 taka.txt에 넣고 싶어요

ls hua.txt

필터 *{hua,las}*도 있어야 하고...

도와주세요

답변1

많은 쉘에는 경로 이름 확장(glob)이 일치할 수 없는 경우 다른 핸들이 있습니다.

예를 들어 다음과 같은 bash두 가지 셸 옵션이 있습니다.

  • nullglob:

    glob 패턴이 일치할 수 없는 경우 기본값은 입니다 bash. 빈 문자열을 반환하도록 미리 옵션을 설정하여 이 동작을 비활성화할 수 있습니다 nullglob.

    shopt -s nullglob
    
  • failglob:

    이는 보다 명시적이며 전역 패턴이 어떤 항목과도 ​​일치하지 않을 때 bash관련 오류 메시지가 표시됩니다 .

    shopt -s failglob
    

nullglob상황에 따라 를 사용하는 경우 선택 bash하거나, 다른 셸을 사용하는 경우 유사한 옵션을 찾아야 합니다.

관련 정보