디렉토리 목록 내용 및 실행 파일을 통한 bash 쉘 루프

디렉토리 목록 내용 및 실행 파일을 통한 bash 쉘 루프

저는 현재 주어진 디렉터리 경로를 선택하고 그 안에 있는 파일과 디렉터리를 나열해야 하는 과제를 수행하고 있습니다. 실행 가능한지 여부도 포함됩니다. 또한 bash를 제외한 다른 언어를 사용하는 것도 제한되어 있습니다.

처음에는 필요한 것을 사용 ll하고 얻으려고 생각했지만 제대로 작동하지 않는 것 같습니다. cut그런 다음 이런 것을 사용할 수 있다고 생각했습니다. (작동하지 않습니다. 단지 아이디어일 뿐입니다.)

read input
for f in $input
do
if [[ -x "$f" ]]
then
echo "$f is executable"
else
echo "$f is not executable"
fi
done

이와 같은 출력이 필요하지만 거기에 도달하는 방법을 모르겠습니다

파일 이름 1은 실행 파일입니다.

파일 이름 2는 실행 가능하지 않습니다.

디렉터리 1은 실행 파일입니다.

답변1

다음과 같은 것을 시도해보세요

my=($(ls -la $dr |awk {'print $9'}))  
echo ${my[@]}  
for i in "${my[@]}"  
do  
    if [[ -x "$i" ]]  
    then  
        echo "File '$i' is executable"  
    else  
        echo "File '$i' is not executable or found"  
    fi  
done                   

답변2

원하는 방식으로 내용을 보는 대신 디렉터리를 가져온 다음 디렉터리 자체가 실행 가능한지 확인합니다.

read input
for f in ${input}/*; do
    echo -n "$f is "
    type=""
    if [[ -x "$f" ]]; then
        type="executable"
    else
        type="non-executable"
    fi
    if [[ -d "$f" ]]; then
        type="$type directory"
    fi
    echo "$type"
done

값이 $input읽을 수 있는 디렉토리인지 확인하는 것은 여러분에게 맡기는 연습입니다.

관련 정보