logoISU  

CS469/569 - Linux and Unix Administration and Networking

Spring 2022

Displaying ./code/02-03-Bash_Conditionals_and_Loops/tree.sh

#!/bin/bash

function tree {
  local dir="$1" level="$2" i files nfiles;

  files=( $dir/* );
  nfiles="${#files[*]}";
  let i=0;
  for file in "${files[@]}";
  do
#    printf "%*s" $((level*4)) ""
    echo -n "$level";

    if (( i < nfiles-1 )); then
      echo -n "|-- ";
    else
      echo -n "\`-- ";
    fi
    echo $(basename "$file");
    if [[ -d "$file" ]]; then
      if (( i < nfiles-1 )); then
	tree "$file" "$level|   ";
      else
	tree "$file" "$level    ";
      fi
    fi
    let i++;
  done
}


dir="${1:-.}";
echo "$dir";
tree "$dir" "";