С одной стороны, $ PATH
дает список каталогов. Если вы хотите проверить каждый файл в $ PATH
, вам нужно будет просмотреть каждый файл в каждом каталоге, а не просто проверять каждый элемент в $ PATH
.
Затем вы используете -x
, чтобы проверить, является ли файл исполняемым, но вы не указываете, какой файл проверять. Я написал исправленную версию ниже:
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
Ответ Фокса - гораздо более хорошее решение, но я просто подумал, что вам будет интересно узнать, что не так с вашим.