저는 현재 숙제를 하고 있는데 주어진 디렉토리 경로와 그 목록에서 그 안의 파일과 디렉토리를 가져와야 합니다. 실행 가능한지 여부도 포함됩니다. 또한 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
읽을 수 있는 디렉토리인지 확인하는 것이 여러분에게 맡기는 연습입니다.