⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 shtool

📁 Linux下的中文输入法
💻
📖 第 1 页 / 共 5 页
字号:
        time_month=`date '+%m'`        time_year=`date '+%Y' 2>/dev/null`        if [ ".$time_year" = . ]; then            time_year=`date '+%y'`            case $time_year in                [5-9][0-9]) time_year="19$time_year" ;;                [0-4][0-9]) time_year="20$time_year" ;;            esac        fi        case $time_month in            1|01) time_monthname='Jan' ;;            2|02) time_monthname='Feb' ;;            3|03) time_monthname='Mar' ;;            4|04) time_monthname='Apr' ;;            5|05) time_monthname='May' ;;            6|06) time_monthname='Jun' ;;            7|07) time_monthname='Jul' ;;            8|08) time_monthname='Aug' ;;            9|09) time_monthname='Sep' ;;              10) time_monthname='Oct' ;;              11) time_monthname='Nov' ;;              12) time_monthname='Dec' ;;        esac    fi    #   expand special ``%x'' constructs    if [ ".$opt_e" = .yes ]; then        text=`echo $seo "$text" |\              sed -e "s/%B/${term_bold}/g" \                  -e "s/%b/${term_norm}/g" \                  -e "s/%u/${username}/g" \                  -e "s/%U/${userid}/g" \                  -e "s/%g/${groupname}/g" \                  -e "s/%G/${groupid}/g" \                  -e "s/%h/${hostname}/g" \                  -e "s/%d/${domainname}/g" \                  -e "s/%D/${time_day}/g" \                  -e "s/%M/${time_month}/g" \                  -e "s/%Y/${time_year}/g" \                  -e "s/%m/${time_monthname}/g" 2>/dev/null`    fi    #   create output    if [ .$opt_n = .no ]; then        echo $seo "$text"    else        #   the harder part: echo -n is best, because        #   awk may complain about some \xx sequences.        if [ ".$minusn" != . ]; then            echo $seo $minusn "$text"        else            echo dummy | awk '{ printf("%s", TEXT); }' TEXT="$text"        fi    fi    shtool_exit 0    ;;install )    ##    ##  install -- Install a program, script or datafile    ##  Copyright (c) 1997-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    #   special case: "shtool install -d <dir> [...]" internally    #   maps to "shtool mkdir -f -p -m 755 <dir> [...]"    if [ "$opt_d" = yes ]; then        cmd="$0 mkdir -f -p -m 755"        if [ ".$opt_o" != . ]; then            cmd="$cmd -o '$opt_o'"        fi        if [ ".$opt_g" != . ]; then            cmd="$cmd -g '$opt_g'"        fi        if [ ".$opt_v" = .yes ]; then            cmd="$cmd -v"        fi        if [ ".$opt_t" = .yes ]; then            cmd="$cmd -t"        fi        for dir in "$@"; do            eval "$cmd $dir" || shtool_exit $?        done        shtool_exit 0    fi    #   determine source(s) and destination    argc=$#    srcs=""    while [ $# -gt 1 ]; do        srcs="$srcs $1"        shift    done    dstpath="$1"    #   type check for destination    dstisdir=0    if [ -d $dstpath ]; then        dstpath=`echo "$dstpath" | sed -e 's:/$::'`        dstisdir=1    fi    #   consistency check for destination    if [ $argc -gt 2 ] && [ $dstisdir = 0 ]; then        echo "$msgprefix:Error: multiple sources require destination to be directory" 1>&2        shtool_exit 1    fi    #   iterate over all source(s)    for src in $srcs; do        dst=$dstpath        #   if destination is a directory, append the input filename        if [ $dstisdir = 1 ]; then            dstfile=`echo "$src" | sed -e 's;.*/\([^/]*\)$;\1;'`            dst="$dst/$dstfile"        fi        #   check for correct arguments        if [ ".$src" = ".$dst" ]; then            echo "$msgprefix:Warning: source and destination are the same - skipped" 1>&2            continue        fi        if [ -d "$src" ]; then            echo "$msgprefix:Warning: source \`$src' is a directory - skipped" 1>&2            continue        fi        #   make a temp file name in the destination directory        dsttmp=`echo $dst |\                sed -e 's;[^/]*$;;' -e 's;\(.\)/$;\1;' -e 's;^$;.;' \                    -e "s;\$;/#INST@$$#;"`        #   verbosity        if [ ".$opt_v" = .yes ]; then            echo "$src -> $dst" 1>&2        fi        #   copy or move the file name to the temp name        #   (because we might be not allowed to change the source)        if [ ".$opt_C" = .yes ]; then            opt_c=yes        fi        if [ ".$opt_c" = .yes ]; then            if [ ".$opt_t" = .yes ]; then                echo "cp $src $dsttmp" 1>&2            fi            cp $src $dsttmp || shtool_exit $?        else            if [ ".$opt_t" = .yes ]; then                echo "mv $src $dsttmp" 1>&2            fi            mv $src $dsttmp || shtool_exit $?        fi        #   adjust the target file        if [ ".$opt_e" != . ]; then            sed='sed'            OIFS="$IFS"; IFS="$ASC_NL"; set -- $opt_e; IFS="$OIFS"            for e            do                sed="$sed -e '$e'"            done            cp $dsttmp $dsttmp.old            chmod u+w $dsttmp            eval "$sed <$dsttmp.old >$dsttmp" || shtool_exit $?            rm -f $dsttmp.old        fi        if [ ".$opt_s" = .yes ]; then            if [ ".$opt_t" = .yes ]; then                echo "strip $dsttmp" 1>&2            fi            strip $dsttmp || shtool_exit $?        fi        if [ ".$opt_o" != . ]; then            if [ ".$opt_t" = .yes ]; then                echo "chown $opt_o $dsttmp" 1>&2            fi            chown $opt_o $dsttmp || shtool_exit $?        fi        if [ ".$opt_g" != . ]; then            if [ ".$opt_t" = .yes ]; then                echo "chgrp $opt_g $dsttmp" 1>&2            fi            chgrp $opt_g $dsttmp || shtool_exit $?        fi        if [ ".$opt_m" != ".-" ]; then            if [ ".$opt_t" = .yes ]; then                echo "chmod $opt_m $dsttmp" 1>&2            fi            chmod $opt_m $dsttmp || shtool_exit $?        fi        #   determine whether to do a quick install        #   (has to be done _after_ the strip was already done)        quick=no        if [ ".$opt_C" = .yes ]; then            if [ -r $dst ]; then                if cmp -s $src $dst; then                    quick=yes                fi            fi        fi        #   finally, install the file to the real destination        if [ $quick = yes ]; then            if [ ".$opt_t" = .yes ]; then                echo "rm -f $dsttmp" 1>&2            fi            rm -f $dsttmp        else            if [ ".$opt_t" = .yes ]; then                echo "rm -f $dst && mv $dsttmp $dst" 1>&2            fi            rm -f $dst && mv $dsttmp $dst        fi    done    shtool_exit 0    ;;mkdir )    ##    ##  mkdir -- Make one or more directories    ##  Copyright (c) 1996-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    errstatus=0    for p in ${1+"$@"}; do        #   if the directory already exists...        if [ -d "$p" ]; then            if [ ".$opt_f" = .no ] && [ ".$opt_p" = .no ]; then                echo "$msgprefix:Error: directory already exists: $p" 1>&2                errstatus=1                break            else                continue            fi        fi        #   if the directory has to be created...        if [ ".$opt_p" = .no ]; then            if [ ".$opt_t" = .yes ]; then                echo "mkdir $p" 1>&2            fi            mkdir $p || errstatus=$?            if [ ".$opt_o" != . ]; then                if [ ".$opt_t" = .yes ]; then                    echo "chown $opt_o $p" 1>&2                fi                chown $opt_o $p || errstatus=$?            fi            if [ ".$opt_g" != . ]; then                if [ ".$opt_t" = .yes ]; then                    echo "chgrp $opt_g $p" 1>&2                fi                chgrp $opt_g $p || errstatus=$?            fi            if [ ".$opt_m" != . ]; then                if [ ".$opt_t" = .yes ]; then                    echo "chmod $opt_m $p" 1>&2                fi                chmod $opt_m $p || errstatus=$?            fi        else            #   the smart situation            set fnord `echo ":$p" |\                       sed -e 's/^:\//%/' \                           -e 's/^://' \                           -e 's/\// /g' \                           -e 's/^%/\//'`            shift            pathcomp=''            for d in ${1+"$@"}; do                pathcomp="$pathcomp$d"                case "$pathcomp" in                    -* ) pathcomp="./$pathcomp" ;;                esac                if [ ! -d "$pathcomp" ]; then                    if [ ".$opt_t" = .yes ]; then                        echo "mkdir $pathcomp" 1>&2                    fi                    mkdir $pathcomp || errstatus=$?                    if [ ".$opt_o" != . ]; then                        if [ ".$opt_t" = .yes ]; then                            echo "chown $opt_o $pathcomp" 1>&2                        fi                        chown $opt_o $pathcomp || errstatus=$?                    fi                    if [ ".$opt_g" != . ]; then                        if [ ".$opt_t" = .yes ]; then                            echo "chgrp $opt_g $pathcomp" 1>&2                        fi                        chgrp $opt_g $pathcomp || errstatus=$?                    fi                    if [ ".$opt_m" != . ]; then                        if [ ".$opt_t" = .yes ]; then                            echo "chmod $opt_m $pathcomp" 1>&2                        fi                        chmod $opt_m $pathcomp || errstatus=$?                    fi                fi                pathcomp="$pathcomp/"            done        fi    done    shtool_exit $errstatus    ;;fixperm )    ##    ##  fixperm -- Fix file permissions inside a source tree    ##  Copyright (c) 1996-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    paths="$*"    #   check whether the test command supports the -x option    if [ -x /bin/sh ] 2>/dev/null; then        minusx="-x"    else        minusx="-r"    fi    #   iterate over paths    for p in $paths; do        for file in `find $p -depth -print`; do            if [ -f $file ]; then                if [ $minusx $file ]; then                    if [ ".$opt_v" = .yes ]; then                        echo "-rwxr-xr-x $file" 2>&1                    fi                    if [ ".$opt_t" = .yes ]; then                        echo "chmod 755 $file" 2>&1                    fi                    chmod 755 $file                else                    if [ ".$opt_v" = .yes ]; then                        echo "-rw-r--r-- $file" 2>&1                    fi                    if [ ".$opt_t" = .yes ]; then                        echo "chmod 644 $file" 2>&1                    fi                    chmod 644 $file                fi                continue            fi            if [ -d $file ]; then                if [ ".$opt_v" = .yes ]; then                    echo "drwxr-xr-x $file" 2>&1

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -