find가 반환하는 파일 이름에 관계없이 다음 스크립트가 항상 작동하도록 하려면 어떻게 해야 합니까?
#!/bin/sh
cmds_should_always_work() {
echo "\n\n*********************************" $1
stat --printf='%n' -- "$1" || echo STATFAILED
echo "\n----------------\n"
lsattr -d -- "$1" || echo LSATTRFAILED
echo "\n----------------\n"
};
for item in $(find "$1" -maxdepth 1 -mindepth 1); do cmds_should_always_work "${item}"; done
예를 들어 디렉터리에서 개행 문자가 포함된 파일을 찾으면 이 스크립트가 중단됩니다.
또한 조회 디렉터리의 이름이 $schema인 경우 이 스크립트는 상위 디렉터리를 반환합니다. 스크립트에 somepath/\$schema 경로를 제공하고 이스케이프해야 하는 것과 비교하여 스크립트는 이를 어떻게 방지합니까?