bash シェルはディレクトリをループして内容と実行可能性を一覧表示します

bash シェルはディレクトリをループして内容と実行可能性を一覧表示します

現在、宿題に取り組んでおり、指定されたディレクトリ パスを取得し、そこからその中のファイルとディレクトリをリストする必要があります。実行可能かどうかも含めます。また、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読み取り可能なディレクトリであることを確認する作業は、皆さんにお任せします。

関連情報