поэтому я пытаюсь написать программу, которая будет считать файлы, каталоги и исполняемый файл в домашнем каталоге. По какой-то причине он не считывает правильные номера для количества файлов, каталогов или исполняемых файлов. Когда я в командной строке он читаетПодсчет количества файлов, каталогов и исполняемых файлов в домашнем каталоге с использованием сценариев оболочки
ls ~/* | ls -f | wc -l = 31
ls ~/* | ls -d | wc -l = 1
ls ~/* | ls -x | wc -l = 5
Это мой код и выход
files=0
directories=0
executables=0
for i in ~/*;do
if [[ -f "$i" ]];then
files=$(($files + 1))
elif [[ -d "$i" ]];then
directories=$(($directories + 1))
elif [[ -x "$i" ]];then
executables=$(($executables + 1))
fi
done
echo Files $files, Directories $directories, Executables $executables
Выход файлов 14, Справочники 2, Executables 0
Почему это случающиеся кого?
Посмотрите, как я пытался использовать $ HOME, и он дал мне файлы 0, каталоги 1 и исполняемые файлы 0. И я не знаю почему. –
Эй, я, наверное, понял, что ты неправ. Проверьте мое редактирование, оно работает для вас? – hek2mgl
Эй, поэтому я пытался избежать awk полностью, потому что я не очень хорошо это понимаю, но моя главная цель состояла в том, чтобы выяснить, что не так с моей программой и почему она производит этот вывод. –