私は現在、指定されたディレクトリパスを選択し、その中にあるファイルとディレクトリを一覧表示する必要があります。実行可能かどうかも含まれます。また、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
読み取り可能なディレクトリであることを確認することは、あなたに任せる練習です。