bash shell 循环遍历目录列出内容和可执行性

bash shell 循环遍历目录列出内容和可执行性

我目前正在做作业,我需要获取给定的目录路径,并从中列出其中的文件和目录。同时还包括它是否可执行。我还受到限制,不允许使用除 bash 之外的任何其他语言。

我最初的想法是使用llcut获得我需要的东西,但我似乎无法让它发挥作用。然后我想我可以使用类似的东西(不起作用,只是一个想法)

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是一个可读目录是我留给您的练习。

相关内容