![.pcap 파일에서만 작동하는 올바른 디렉터리 루핑 방법](https://linux55.com/image/119544/.pcap%20%ED%8C%8C%EC%9D%BC%EC%97%90%EC%84%9C%EB%A7%8C%20%EC%9E%91%EB%8F%99%ED%95%98%EB%8A%94%20%EC%98%AC%EB%B0%94%EB%A5%B8%20%EB%94%94%EB%A0%89%ED%84%B0%EB%A6%AC%20%EB%A3%A8%ED%95%91%20%EB%B0%A9%EB%B2%95.png)
bash에서 .pcap 파일과만 일치하는 파일 디렉터리에서 중첩 for 루프를 수행하는 것이 합법적입니까?
ROOTFILEPATH = '/a/path'
FILEEXT = '.pcap'
for file in $ROOTFILEPATH
for $FILEEXT in file; do
#do something
done
감사해요.
답변1
루프를 중첩하는 대신 첫 번째 루프가 *.pcap
파일에만 작동하도록 지시할 수 있습니다.
#! /bin/bash -
for CUR_FILE in "/PATH/TO/DIR/"*.pcap; do
echo "$CUR_FILE"
done
답변2
디렉토리를 반복하려면 지정된 확장자만 선택하고 디렉토리와 확장자는 변수입니다.
rootfilepath='/a/path'
fileext='.pcap'
for file in "$rootfilepath"/*"$fileext"
do
: something with "$file"
done
귀하의 원본 콘텐츠를 일부 변경했습니다.
- 소문자 변수 이름. 단지 관례입니다. 이름이 모두 대문자인 여러 내장 변수를 사용하는 것을 방지하는 데 도움이 됩니다.
- 변수 할당 주변의 공백이 제거되었습니다. 그렇지 않으면 변수 이름 자체가 두 개의 인수, 즉 등호와 나머지 변수 값을 사용하여 실행되는 명령으로 처리됩니다.
do
루프에 누락된 값을 추가했습니다.*
해당 경로에 있는 해당 확장자를 가진 모든 파일을 가져오려면 디렉터리와 파일 확장자 사이에 셸 와일드카드( )를 사용하세요.