저는 현재 주어진 디렉터리 경로를 선택하고 그 안에 있는 파일과 디렉터리를 나열해야 하는 과제를 수행하고 있습니다. 실행 가능한지 여부도 포함됩니다. 또한 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
읽을 수 있는 디렉토리인지 확인하는 것은 여러분에게 맡기는 연습입니다.