См. « Почему *not* parse `ls`?», чтобы понять, почему анализ вывода ls
может быть не лучшим подходом.
Для вашего скрипта:
#!/bin/sh
dir="$1"
PAGER="${PAGER:-cat}"
test -d "$dir" || exit 1
find "$dir" -type f -exec "$PAGER" {} \;
Это возьмет первый аргумент командной строки и назначит его переменной dir
. Переменная PAGER
будет установлена на cat
, если пользователь еще не установил для нее другое значение.
Если данный каталог является допустимым именем каталога, find
используется для передачи всех обычных файлов (включая скрытые обычные файлы) в каталоге или любом из его подкаталогов на пейджер.
Чтобы ограничить поиск файлов только первым уровнем данного каталога, вставьте -maxdepth 1
перед параметром -exec
, чтобы find
.
Использование:
cat
все файлы в /tmp
:
$ ./script /tmp
Посмотреть первые 10 строк всех файлов в вашем домашнем каталоге:
$ PAGER=head ./script "$HOME"
Прочитать все истории в вашем каталоге ~/stories
:
$ PAGER=less ./script "$HOME/stories"
Расширение:
#!/bin/sh
dir="$1"
suf="$2"
PAGER="${PAGER:-cat}"
test -d "$dir" || exit 1
find "$dir" -type f -name "*$suf" -exec "$PAGER" {} \;
Это позволит сценарию использовать дополнительный суффикс имени файла, например
$ ./script /tmp .txt
Я разобрался. По какой-то причине установщик Stretch (или мой предварительный ввод, но я ничего не менял в отношении дисков или разделов по сравнению с моим предварительным вводом Jessie, у которого нет этой проблемы) пропускает шаг «Обнаружение дисков», поэтому, конечно, ничего не появляется для разделение.
Когда разделитель не обнаружит дисков, нажмите TAB
, чтобы выбрать «Вернуться», затем выберите шаг «Обнаружение дисков». Затем он обнаружит диск и позволит вам разбить его на разделы как обычно.