Глава работает с файлом (или группой файлов), а не с каталогом, поэтому вам нужно настроить переменную directoryName, чтобы вы говорили интерпретатору оболочки, что вы имеете в виду «каждый файл в этом каталоге», а не каталог ,
Проще всего было бы добавить «/ *» в DirectoryName, изменив третью строчку в этом:
head $numberOfLines ${directoryName}/*
Пример:
myshell:tmp gdalton$ ./script.sh -2 hello
==> hello/file1 <==
file 1
==> hello/file2 <==
file 2
file 2
Обратите внимание, что вам нужно будет ссылаться на ваш первый параметр с тире, как я сделал в примере из-за синтаксиса для команды head. Вы можете легко исправить это в своем коде, используя изменение, которое я сделал, чтобы исправить ваш код как точку перехода ... Я бы настоятельно советовал вам проверять страницы руководства для головы, чтобы вы могли понять, как структурировать ваши команды оболочки; они часто содержат множество опций для этих команд.
man head
Удачи.