디렉토리 목록 내용 및 실행 가능성을 통한 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

출력이 다음과 같아야 하는데 거기에 도달하는 방법을 잘 모르겠습니다.

file-name1은 실행 가능합니다.

file-name2은(는) 실행 가능하지 않습니다.

Directory1은 실행 가능합니다.

답변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읽을 수 있는 디렉토리인지 확인하는 것이 여러분에게 맡기는 연습입니다.

관련 정보