* PWD2 [#oaeb24c5]

pwdコマンドを加工して、今いるディレクトリとその上のディレクトリのみ表示する。


 function pwd4screen() {
    _ifs=IFS
 function pwd2() {
    local _ifs=IFS
    local buf=''
    local dir=()
    local n=0
    local idx=0
    IFS=/
    for i in $PWD; do
        n=${#dir[@]}
        dir[$n]=$i
    done
    n=${#dir[@]}
    for i in 3 2 1; do
        idx=$((n-$i))
        if [ "$idx" -ge 0 ]; then
        if [ "$idx" -gt 0 ]; then
            buf=$buf/${dir[$idx]}
        fi
    done
    if [ "$n" -gt 3 ]; then
    if [ "$n" -gt 2 ]; then
        buf=${buf#/}
    fi
    IFS=$_ifs
    echo -en "\033k$buf\033\134"
    echo $buf
 }


 local _IFS=IFS
 local n=0
 local dir=()
 local buf=""
 IFS=/
 for i in $PWD; do
     n=${#dir[@]}
     dir[$n]=$i
 done
 n=${#dir[@]}
 if [ "$n" -ge 6 ]; then
     n3=$((n-1))
     n2=$((n-2))
     n1=$((n-3))
     buf=${dir[$n1]}/${dir[$n2]}/${dir[$n3]}
 elif [ "$n" -eq 5 ]; then
     n3=$((n-1))
     n2=$((n-2))
     n1=$((n-3))
     buf=/${dir[$n1]}/${dir[$n2]}/${dir[$n3]}
 elif [ "$n" -eq 4 ]; then
     n2=$((n-1))
     n1=$((n-2))
     buf=/${dir[$n1]}/${dir[$n2]}
 elif [ "$n" -eq 3 ]; then
     n1=$((n-1))
     buf=/${dir[$n1]}
 else
     buf=/
 fi
 IFS=$_IFS
 echo $buf


トップ   編集 差分 バックアップ 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS