Por um lado, $PATH
fornece uma lista de diretórios. Se você quiser verificar cada arquivo no seu $PATH
, precisará examinar cada arquivo em cada diretório, não apenas verificar cada item em $PATH
.
Em seguida, você está usando -x
para ver se o arquivo é executável, mas não está especificando qual arquivo verificar. Eu escrevi uma versão alterada abaixo:
IFS=':'
for directory in $PATH; do
for file in $directory/*; do
if [ -x $file ]; then
echo "Executable File: " $file
else
echo "Not executable: " $file
fi
done
done
A resposta da Fox é uma solução muito melhor, mas eu achei que você estaria interessada no que havia de errado com a sua.