여러 파일을 검사하여 읽을 수 있는지 확인하는 스크립트를 만드는 방법

여러 파일을 검사하여 읽을 수 있는지 확인하는 스크립트를 만드는 방법

[-r]을 사용하여 파일을 읽는 방법을 이해합니다. 그런데 여러 파일을 입력으로 받아들이고 확인하는 스크립트는 어떻게 만듭니까?

내가 들어간다고 해보자

./checkfile hi hello world

스크립트는 다음을 반환해야 합니다.

hi is readable 
hello is readable
world is not readable 
summary: 2 of 3 files are readable

답변1

#! /bin/sh -
n=0
for file do
  if [ -r "$file" ]; then
    printf '"%s" is readable\n' "$file"
    n=$((n + 1))
  else
    printf '"%s" is not readable\n' "$file"
  fi
done
echo "$n out of $# files were readable"

[ -r file ]file명령을 호출하는 프로세스(보통 시스템 호출 사용)를 [사용자(스크립트를 실행하는 사용자)가 읽을 수 있는지 테스트합니다 access().

다른 사용자가 읽을 수 있는지 여부는 언급되지 않습니다. 그것을 읽으려고 시도하지도 않을 것입니다. 예를 들어 기본 저장소의 결함으로 인해 읽을 수 없는 파일은 감지할 수 없습니다.

답변2

$@배열과 같은 구조로 스크립트에 전달된 모든 인수(위치 인수)를 저장하는 특수 변수입니다.

$1, $2, $3, ... are the positional parameters.
"$@" is an array-like construct of all positional parameters, {$1, $2, $3 ...}.

이에 대한 자세한 내용은 다음을 참조하세요.배쉬 참조 매뉴얼

관련 정보