Screaming Loud

研究・プログラミングなど気づいたことをメモをしています。読書記録はこちらに記載しています。https://bookmeter.com/users/75944

シェルで書いたtreeコマンドの編集

shellスクリプトの練習です。

  1. treeコマンドで表示されるtreeだけを抽出。
  2. treeの行数を同時に表示
  3. 一番に見出しを表示させる

この3点を実装しました。

引数に取ったディレクトリを見ます。
もし、引数に何も無ければ、コマンドラインからの入力を受付ます。

#!/bin/sh

TMPNUMFILE=/tmp/treeNum
TMPTREE=/tmp/treestrct
TMPHEADER=/tmp/header

if [ $# -eq 0 ];then

    ## ディレクトリの入力
    echo "treeを表示させたいディレクトリを入力してください"
    while true
    do
        read DIR
        if [ ! -d $DIR ];then
            echo "そのようなディレクトリは存在しません"
        else
            break;
        fi

    done
else
    ## 引数のディレクトリを作成
    DIR=$1
    if [ ! -d $DIR ];then
        echo "そのようなディレクトリは存在しません"
        exit 1
    fi
fi

# tree構造の作成
tree -N $DIR | grep "qq" > $TMPTREE
# tree数の作成
tree -N $DIR | grep "qq" | cat -n | cut -f 1 | sed -e 's/$/:  /g' > $TMPNUMFILE


echo $DIR > $TMPHEADER
date >> $TMPHEADER

cat $TMPHEADER
paste $TMPNUMFILE $TMPTREE

dirCheck(){
    if [ ! -d $1 ];then
        echo "そのようなディレクトリは存在しません"
    else
        break;
    fi
    return;
}
広告を非表示にする