Я хочу распечатать структуру папки со сценарием оболочки. Это будет выглядеть так:
File : linux -3.14/COPYING
File : linux -3.14/CREDITS
Directory : linux -3.14/Documentation
File : linux -3.14/Documentation/00 - INDEX
Directory : linux -3.14/Documentation/ABI
File : linux -3.14/Documentation/ABI/README
, и это мой сценарий. Проблема в том, что он распечатывает все файлы и папки для текущего каталога, но не печатает для вложенных папок. Может быть, я делаю рекурсию неправильно
dirPrint() {
# Find all files and print them first
file=$1
for f in $(ls ${file}); do
if [ -f ${f} ];
then
path="$(pwd)/$f"
echo "File: $path"
fi
done
# Find all directories and print them
for f in $(ls ${file}); do
if [ -d ${f} ];
then
path="$(pwd)/$f"
echo "Directory: $path"
echo " $(dirPrint "$path")"
fi
done
}
if [ $# -eq 0 ]; then
dirPrint .
else
dirPrint "$1"
fi
А также в чем разница между использованием $ 1, «$ 1» и «$ {1}»?