arg가 shell에서 유효한 파일 이름인지 확인하는 방법은 무엇입니까?
-
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}가 일반 파일인지 확인합니다.
제휴하지 않습니다 StackOverflow