arg가 shell에서 유효한 파일 이름인지 확인하는 방법은 무엇입니까?

StackOverflow https://stackoverflow.com/questions/1449132

  •  11-09-2019
  •  | 
  •  

문제

Args가 유효한 파일 이름인지 확인해야합니다. 이것이 올바른 방법입니까? 인라인 2를 실수 한 것 같지만 어디에 있는지 모르겠습니다.

for i in ${@}; do                                   
if [ -f ${i}]; then                             
    echo ${i}
else continue
fi
done
도움이 되었습니까?

해결책

우선, 당신은 닫는 사각형 브래킷 전에 공간이 필요합니다. 파일 이름에 공간이있는 경우 변수를 인용해야합니다.

for i in "${@}"; do 
if [ -f "${i}" ]; then
    echo "${i}"
else continue
fi
done

"else continue"그것이 당신이 할 수있는 다른 것을위한 자리 표시자가 아니라면"불필요합니다. "continue".

다른 팁

다음은 파일 이름이 공백이 포함되어 있어도 작동하는 Terse 솔루션입니다.

for i
do
    test -f "$i" && echo "$i"
done

for 문은 명령 줄 인수를 가정하고 더 많은 입력을 할 필요가 없습니다. 테스트 명령은 if .. 그때 .. fi의 짧은 방법입니다.

-f는 $ {i}가 일반 파일인지 확인합니다.

라이센스 : CC-BY-SA ~와 함께 속성
제휴하지 않습니다 StackOverflow
scroll top