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

📄 shtool

📁 Linux下的中文输入法
💻
📖 第 1 页 / 共 5 页
字号:
                ;;            *)                break                ;;        esac    fi    #   eat up option    shift    #   determine whether option needs an argument    eval "opt_MODE=\$opt_MODE_${opt_OPT}"    if [ ".$opt_ARG" = . ] && [ ".$opt_ARG_OK" != .yes ]; then        if [ ".$opt_MODE" = ".:" ] || [ ".$opt_MODE" = ".+" ]; then            opt_PREV="$opt_OPT"            continue        fi    fi    #   process option    case $opt_MODE in        '.' )            #   boolean option            eval "opt_${opt_OPT}=yes"            ;;        ':' )            #   option with argument (multiple occurances override)            eval "opt_${opt_OPT}=\"\$opt_ARG\""            ;;        '+' )            #   option with argument (multiple occurances append)            eval "opt_${opt_OPT}=\"\$opt_${opt_OPT}\${ASC_NL}\$opt_ARG\""            ;;        * )            echo "$msgprefix:Error: unknown option: \`$opt_OPT'" 1>&2            echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2            exit 1            ;;    esacdoneif [ ".$opt_PREV" != . ]; then    echo "$msgprefix:Error: missing argument to option \`$opt_PREV'" 1>&2    echo "$msgprefix:Hint:  run \`$toolcmdhelp -h' or \`man shtool' for details" 1>&2    exit 1fi#   process help optionif [ ".$opt_h" = .yes ]; then    echo "Usage: $toolcmdhelp $str_usage"    exit 0fi#   complain about incorrect number of argumentscase $arg_MODE in    '=' )        if [ $# -ne $arg_NUMS ]; then            echo "$msgprefix:Error: invalid number of arguments (exactly $arg_NUMS expected)" 1>&2            echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2            exit 1        fi        ;;    '+' )        if [ $# -lt $arg_NUMS ]; then            echo "$msgprefix:Error: invalid number of arguments (at least $arg_NUMS expected)" 1>&2            echo "$msgprefix:Hint:  run \`$toolcmd -h' or \`man shtool' for details" 1>&2            exit 1        fi        ;;esac#   establish a temporary file on requestif [ ".$gen_tmpfile" = .yes ]; then    if [ ".$TMPDIR" != . ]; then        tmpdir="$TMPDIR"    elif [ ".$TEMPDIR" != . ]; then        tmpdir="$TEMPDIR"    else        tmpdir="/tmp"    fi    tmpfile="$tmpdir/.shtool.$$"    rm -f $tmpfile >/dev/null 2>&1    touch $tmpfile    chmod 600 $tmpfilefi#   utility function: map string to lower caseutil_lower () {    echo "$1" | tr 'ABCDEFGHIJKLMNOPQRSTUVWXYZ' 'abcdefghijklmnopqrstuvwxyz'}#   utility function: map string to upper caseutil_upper () {    echo "$1" | tr 'abcdefghijklmnopqrstuvwxyz' 'ABCDEFGHIJKLMNOPQRSTUVWXYZ'}#   cleanup procedureshtool_exit () {    rc="$1"    if [ ".$gen_tmpfile" = .yes ]; then        rm -f $tmpfile >/dev/null 2>&1 || true    fi    exit $rc}####  DISPATCH INTO SCRIPT BODY##case $tool inecho )    ##    ##  echo -- Print string with optional construct expansion    ##  Copyright (c) 1998-2004 Ralf S. Engelschall <rse@engelschall.com>    ##    text="$*"    #   check for broken escape sequence expansion    seo=''    bytes=`echo '\1' | wc -c | awk '{ printf("%s", $1); }'`    if [ ".$bytes" != .3 ]; then        bytes=`echo -E '\1' | wc -c | awk '{ printf("%s", $1); }'`        if [ ".$bytes" = .3 ]; then            seo='-E'        fi    fi    #   check for existing -n option (to suppress newline)    minusn=''    bytes=`echo -n 123 2>/dev/null | wc -c | awk '{ printf("%s", $1); }'`    if [ ".$bytes" = .3 ]; then        minusn='-n'    fi    #   determine terminal bold sequence    term_bold=''    term_norm=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[Bb]'`" != . ]; then        case $TERM in            #   for the most important terminal types we directly know the sequences            xterm|xterm*|vt220|vt220*)                term_bold=`awk 'BEGIN { printf("%c%c%c%c", 27, 91, 49, 109); }' </dev/null 2>/dev/null`                term_norm=`awk 'BEGIN { printf("%c%c%c", 27, 91, 109); }' </dev/null 2>/dev/null`                ;;            vt100|vt100*|cygwin)                term_bold=`awk 'BEGIN { printf("%c%c%c%c%c%c", 27, 91, 49, 109, 0, 0); }' </dev/null 2>/dev/null`                term_norm=`awk 'BEGIN { printf("%c%c%c%c%c", 27, 91, 109, 0, 0); }' </dev/null 2>/dev/null`                ;;            #   for all others, we try to use a possibly existing `tput' or `tcout' utility            * )                paths=`echo $PATH | sed -e 's/:/ /g'`                for tool in tput tcout; do                    for dir in $paths; do                        if [ -r "$dir/$tool" ]; then                            for seq in bold md smso; do # 'smso' is last                                bold="`$dir/$tool $seq 2>/dev/null`"                                if [ ".$bold" != . ]; then                                    term_bold="$bold"                                    break                                fi                            done                            if [ ".$term_bold" != . ]; then                                for seq in sgr0 me rmso init reset; do # 'reset' is last                                    norm="`$dir/$tool $seq 2>/dev/null`"                                    if [ ".$norm" != . ]; then                                        term_norm="$norm"                                        break                                    fi                                done                            fi                            break                        fi                    done                    if [ ".$term_bold" != . ] && [ ".$term_norm" != . ]; then                        break;                    fi                done                ;;        esac        if [ ".$term_bold" = . ] || [ ".$term_norm" = . ]; then            echo "$msgprefix:Warning: unable to determine terminal sequence for bold mode" 1>&2            term_bold=''            term_norm=''        fi    fi    #   determine user name    username=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[uUgG]'`" != . ]; then        username="`(id -un) 2>/dev/null`"        if [ ".$username" = . ]; then            str="`(id) 2>/dev/null`"            if [ ".`echo $str | grep '^uid[ 	]*=[ 	]*[0-9]*('`" != . ]; then                username=`echo $str | sed -e 's/^uid[ 	]*=[ 	]*[0-9]*(//' -e 's/).*$//'`            fi            if [ ".$username" = . ]; then                username="$LOGNAME"                if [ ".$username" = . ]; then                    username="$USER"                    if [ ".$username" = . ]; then                        username="`(whoami) 2>/dev/null |\                                   awk '{ printf("%s", $1); }'`"                        if [ ".$username" = . ]; then                            username="`(who am i) 2>/dev/null |\                                       awk '{ printf("%s", $1); }'`"                            if [ ".$username" = . ]; then                                username='unknown'                            fi                        fi                    fi                fi            fi        fi    fi    #   determine user id    userid=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%U'`" != . ]; then        userid="`(id -u) 2>/dev/null`"        if [ ".$userid" = . ]; then            userid="`(id -u ${username}) 2>/dev/null`"            if [ ".$userid" = . ]; then                str="`(id) 2>/dev/null`"                if [ ".`echo $str | grep '^uid[ 	]*=[ 	]*[0-9]*('`" != . ]; then                    userid=`echo $str | sed -e 's/^uid[ 	]*=[ 	]*//' -e 's/(.*$//'`                fi                if [ ".$userid" = . ]; then                    userid=`(getent passwd ${username}) 2>/dev/null | \                            sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`                    if [ ".$userid" = . ]; then                        userid=`grep "^${username}:" /etc/passwd 2>/dev/null | \                                sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`                        if [ ".$userid" = . ]; then                            userid=`(ypcat passwd) 2>/dev/null |                                    grep "^${username}:" | \                                    sed -e 's/[^:]*:[^:]*://' -e 's/:.*$//'`                            if [ ".$userid" = . ]; then                                userid='?'                            fi                        fi                    fi                fi            fi        fi    fi    #   determine (primary) group id    groupid=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[gG]'`" != . ]; then        groupid="`(id -g ${username}) 2>/dev/null`"        if [ ".$groupid" = . ]; then            str="`(id) 2>/dev/null`"            if [ ".`echo $str | grep 'gid[ 	]*=[ 	]*[0-9]*('`" != . ]; then                groupid=`echo $str | sed -e 's/^.*gid[ 	]*=[ 	]*//' -e 's/(.*$//'`            fi            if [ ".$groupid" = . ]; then                groupid=`(getent passwd ${username}) 2>/dev/null | \                         sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`                if [ ".$groupid" = . ]; then                    groupid=`grep "^${username}:" /etc/passwd 2>/dev/null | \                             sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`                    if [ ".$groupid" = . ]; then                        groupid=`(ypcat passwd) 2>/dev/null | grep "^${username}:" | \                                 sed -e 's/[^:]*:[^:]*:[^:]*://' -e 's/:.*$//'`                        if [ ".$groupid" = . ]; then                            groupid='?'                        fi                    fi                fi            fi        fi    fi    #   determine (primary) group name    groupname=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%g'`" != . ]; then        groupname="`(id -gn ${username}) 2>/dev/null`"        if [ ".$groupname" = . ]; then            str="`(id) 2>/dev/null`"            if [ ".`echo $str | grep 'gid[ 	]*=[ 	]*[0-9]*('`" != . ]; then                groupname=`echo $str | sed -e 's/^.*gid[ 	]*=[ 	]*[0-9]*(//' -e 's/).*$//'`            fi            if [ ".$groupname" = . ]; then                groupname=`(getent group) 2>/dev/null | \                           grep "^[^:]*:[^:]*:${groupid}:" | \                           sed -e 's/:.*$//'`                if [ ".$groupname" = . ]; then                    groupname=`grep "^[^:]*:[^:]*:${groupid}:" /etc/group 2>/dev/null | \                               sed -e 's/:.*$//'`                    if [ ".$groupname" = . ]; then                        groupname=`(ypcat group) 2>/dev/null | \                                   grep "^[^:]*:[^:]*:${groupid}:" | \                                   sed -e 's/:.*$//'`                        if [ ".$groupname" = . ]; then                            groupname='?'                        fi                    fi                fi            fi        fi    fi    #   determine host and domain name    hostname=''    domainname=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%h'`" != . ]; then        hostname="`(uname -n) 2>/dev/null |\                   awk '{ printf("%s", $1); }'`"        if [ ".$hostname" = . ]; then            hostname="`(hostname) 2>/dev/null |\                       awk '{ printf("%s", $1); }'`"            if [ ".$hostname" = . ]; then                hostname='unknown'            fi        fi        case $hostname in            *.* )                domainname=".`echo $hostname | cut -d. -f2-`"                hostname="`echo $hostname | cut -d. -f1`"                ;;        esac    fi    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%d'`" != . ]; then        if [ ".$domainname" = . ]; then            if [ -f /etc/resolv.conf ]; then                domainname="`grep '^[ 	]*domain' /etc/resolv.conf | sed -e 'q' |\                             sed -e 's/.*domain//' \                                 -e 's/^[ 	]*//' -e 's/^ *//' -e 's/^	*//' \                                 -e 's/^\.//' -e 's/^/./' |\                             awk '{ printf("%s", $1); }'`"                if [ ".$domainname" = . ]; then                    domainname="`grep '^[ 	]*search' /etc/resolv.conf | sed -e 'q' |\                                 sed -e 's/.*search//' \                                     -e 's/^[ 	]*//' -e 's/^ *//' -e 's/^	*//' \                                     -e 's/ .*//' -e 's/	.*//' \                                     -e 's/^\.//' -e 's/^/./' |\                                 awk '{ printf("%s", $1); }'`"                fi            fi        fi    fi    #   determine current time    time_day=''    time_month=''    time_year=''    time_monthname=''    if [ ".$opt_e" = .yes ] && [ ".`echo $text | grep '%[DMYm]'`" != . ]; then        time_day=`date '+%d'`

⌨️ 快捷键说明

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