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

📄 shtool

📁 Linux下的中文输入法
💻
📖 第 1 页 / 共 5 页
字号:
#!/bin/sh####  GNU shtool -- The GNU Portable Shell Tool##  Copyright (c) 1994-2004 Ralf S. Engelschall <rse@engelschall.com>####  See http://www.gnu.org/software/shtool/ for more information.##  See ftp://ftp.gnu.org/gnu/shtool/ for latest version.####  Version:  2.0.1 (11-Aug-2004)##  Contents: 7/19 available modules######  This program is free software; you can redistribute it and/or modify##  it under the terms of the GNU General Public License as published by##  the Free Software Foundation; either version 2 of the License, or##  (at your option) any later version.####  This program is distributed in the hope that it will be useful,##  but WITHOUT ANY WARRANTY; without even the implied warranty of##  MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU##  General Public License for more details.####  You should have received a copy of the GNU General Public License##  along with this program; if not, write to the Free Software##  Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA 02111-1307,##  USA, or contact Ralf S. Engelschall <rse@engelschall.com>.####  NOTICE: Given that you include this file verbatim into your own##  source tree, you are justified in saying that it remains separate##  from your package, and that this way you are simply just using GNU##  shtool. So, in this situation, there is no requirement that your##  package itself is licensed under the GNU General Public License in##  order to take advantage of GNU shtool.######  Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]####  Available commands:##    echo       Print string with optional construct expansion##    install    Install a program, script or datafile##    mkdir      Make one or more directories##    fixperm    Fix file permissions inside a source tree##    tarball    Roll distribution tarballs##    scpp       Sharing C Pre-Processor##    version    Maintain a version information file####  Not available commands (because module was not built-in):##    mdate      Pretty-print modification time of a file or dir##    table      Pretty-print a field-separated list as a table##    prop       Display progress with a running propeller##    move       Move files with simultaneous substitution##    mkln       Make link with calculation of relative paths##    mkshadow   Make a shadow tree through symbolic links##    rotate     Logfile rotation##    subst      Apply sed(1) substitution operations##    platform   Platform Identification Utility##    arx        Extended archive command##    slo        Separate linker options by library class##    path       Deal with program paths##if [ $# -eq 0 ]; then    echo "$0:Error: invalid command line" 1>&2    echo "$0:Hint:  run \`$0 -h' for usage" 1>&2    exit 1fiif [ ".$1" = ".-h" ] || [ ".$1" = ".--help" ]; then    echo "This is GNU shtool, version 2.0.1 (11-Aug-2004)"    echo "Copyright (c) 1994-2004 Ralf S. Engelschall <rse@engelschall.com>"    echo "Report bugs to <bug-shtool@gnu.org>"    echo ''    echo "Usage: shtool [<options>] [<cmd-name> [<cmd-options>] [<cmd-args>]]"    echo ''    echo 'Available global <options>:'    echo '  -v, --version   display shtool version information'    echo '  -h, --help      display shtool usage help page (this one)'    echo '  -d, --debug     display shell trace information'    echo '  -r, --recreate  recreate this shtool script via shtoolize'    echo ''    echo 'Available <cmd-name> [<cmd-options>] [<cmd-args>]:'    echo '  echo     [-n|--newline] [-e|--expand] [<string> ...]'    echo '  install  [-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy]'    echo '           [-C|--compare-copy] [-s|--strip] [-m|--mode <mode>]'    echo '           [-o|--owner <owner>] [-g|--group <group>] [-e|--exec'    echo '           <sed-cmd>] <file> [<file> ...] <path>'    echo '  mkdir    [-t|--trace] [-f|--force] [-p|--parents] [-m|--mode'    echo '           <mode>] [-o|--owner <owner>] [-g|--group <group>] <dir>'    echo '           [<dir> ...]'    echo '  fixperm  [-v|--verbose] [-t|--trace] <path> [<path> ...]'    echo '  tarball  [-t|--trace] [-v|--verbose] [-o|--output <tarball>]'    echo '           [-c|--compress <prog>] [-d|--directory <dir>] [-u|--user'    echo '           <user>] [-g|--group <group>] [-e|--exclude <pattern>]'    echo '           <path> [<path> ...]'    echo '  scpp     [-v|--verbose] [-p|--preserve] [-f|--filter <filter>]'    echo '           [-o|--output <ofile>] [-t|--template <tfile>] [-M|--mark'    echo '           <mark>] [-D|--define <dname>] [-C|--class <cname>]'    echo '           <file> [<file> ...]'    echo '  version  [-l|--language <lang>] [-n|--name <name>] [-p|--prefix'    echo '           <prefix>] [-s|--set <version>] [-e|--edit] [-i|--increase'    echo '           <knob>] [-d|--display <type>] <file>'    echo ''    echo 'Not available <cmd-name> (because module was not built-in):'    echo '  mdate    [-n|--newline] [-z|--zero] [-s|--shorten] [-d|--digits]'    echo '           [-f|--field-sep <str>] [-o|--order <spec>] <path>'    echo '  table    [-F|--field-sep <sep>] [-w|--width <width>] [-c|--columns'    echo '           <cols>] [-s|--strip <strip>] <str><sep><str>...'    echo '  prop     [-p|--prefix <str>]'    echo '  move     [-v|--verbose] [-t|--trace] [-e|--expand] [-p|--preserve]'    echo '           <src-file> <dst-file>'    echo '  mkln     [-t|--trace] [-f|--force] [-s|--symbolic] <src-path>'    echo '           [<src-path> ...] <dst-path>'    echo '  mkshadow [-v|--verbose] [-t|--trace] [-a|--all] <src-dir> <dst-dir>'    echo '  rotate   [-v|--verbose] [-t|--trace] [-f|--force] [-n|--num-files'    echo '           <count>] [-s|--size <size>] [-c|--copy] [-r|--remove]'    echo '           [-a|--archive-dir <dir>] [-z|--compress [<tool>:]<level>]'    echo '           [-b|--background] [-d|--delay] [-p|--pad <len>] [-m|--mode'    echo '           <mode>] [-o|--owner <owner>] [-g|--group <group>] [-M|--migrate'    echo '           <cmd>] [-P|--prolog <cmd>] [-E|--epilog <cmd>] <file> [...]'    echo '  subst    [-v|--verbose] [-t|--trace] [-n|--nop] [-w|--warning]'    echo '           [-q|--quiet] [-s|--stealth] [-i|--interactive] [-b|--backup'    echo '           <ext>] [-e|--exec <cmd>] [-f|--file <cmd-file>] [<file>]'    echo '           [...]'    echo '  platform [-F|--format <format>] [-S|--sep <string>] [-C|--conc'    echo '           <string>] [-L|--lower] [-U|--upper] [-v|--verbose]'    echo '           [-c|--concise] [-n|--no-newline] [-t|--type <type>]'    echo '           [-V|--version] [-h|--help]'    echo '  arx      [-t|--trace] [-C|--command <cmd>] <op> <archive> [<file>'    echo '           ...]'    echo '  slo      [-p|--prefix <str>] -- -L<dir> -l<lib> [-L<dir> -l<lib>'    echo '           ...]'    echo '  path     [-s|--suppress] [-r|--reverse] [-d|--dirname] [-b|--basename]'    echo '           [-m|--magic] [-p|--path <path>] <str> [<str> ...]'    echo ''    exit 0fiif [ ".$1" = ".-v" ] || [ ".$1" = ".--version" ]; then    echo "GNU shtool 2.0.1 (11-Aug-2004)"    exit 0fiif [ ".$1" = ".-r" ] || [ ".$1" = ".--recreate" ]; then    shtoolize -oshtool echo install mkdir fixperm tarball scpp version    exit 0fiif [ ".$1" = ".-d" ] || [ ".$1" = ".--debug" ]; then    shift    set -xfiname=`echo "$0" | sed -e 's;.*/\([^/]*\)$;\1;' -e 's;-sh$;;' -e 's;\.sh$;;'`case "$name" in    echo|install|mkdir|fixperm|tarball|scpp|version )        #   implicit tool command selection        tool="$name"        ;;    * )        #   explicit tool command selection        tool="$1"        shift        ;;esacarg_spec=""opt_spec=""gen_tmpfile=no####  DISPATCH INTO SCRIPT PROLOG##case $tool in    echo )        str_tool="echo"        str_usage="[-n|--newline] [-e|--expand] [<string> ...]"        arg_spec="0+"        opt_spec="n.e."        opt_alias="n:newline,e:expand"        opt_n=no        opt_e=no        ;;    install )        str_tool="install"        str_usage="[-v|--verbose] [-t|--trace] [-d|--mkdir] [-c|--copy] [-C|--compare-copy] [-s|--strip] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] [-e|--exec <sed-cmd>] <file> [<file> ...] <path>"        arg_spec="1+"        opt_spec="v.t.d.c.C.s.m:o:g:e+"        opt_alias="v:verbose,t:trace,d:mkdir,c:copy,C:compare-copy,s:strip,m:mode,o:owner,g:group,e:exec"        opt_v=no        opt_t=no        opt_d=no        opt_c=no        opt_C=no        opt_s=no        opt_m="0755"        opt_o=""        opt_g=""        opt_e=""        ;;    mkdir )        str_tool="mkdir"        str_usage="[-t|--trace] [-f|--force] [-p|--parents] [-m|--mode <mode>] [-o|--owner <owner>] [-g|--group <group>] <dir> [<dir> ...]"        arg_spec="1+"        opt_spec="t.f.p.m:o:g:"        opt_alias="t:trace,f:force,p:parents,m:mode,o:owner,g:group"        opt_t=no        opt_f=no        opt_p=no        opt_m=""        opt_o=""        opt_g=""        ;;    fixperm )        str_tool="fixperm"        str_usage="[-v|--verbose] [-t|--trace] <path> [<path> ...]"        arg_spec="1+"        opt_spec="v.t."        opt_alias="v:verbose,t:trace"        opt_v=no        opt_t=no        ;;    tarball )        str_tool="tarball"        str_usage="[-t|--trace] [-v|--verbose] [-o|--output <tarball>] [-c|--compress <prog>] [-d|--directory <dir>] [-u|--user <user>] [-g|--group <group>] [-e|--exclude <pattern>] <path> [<path> ...]"        gen_tmpfile=yes        arg_spec="1+"        opt_spec="t.v.o:c:d:u:g:e:"        opt_alias="t:trace,v:verbose,o:output,c:compress,d:directory,u:user,g:group,e:exclude"        opt_t=no        opt_v=no        opt_o=""        opt_c=""        opt_d=""        opt_u=""        opt_g=""        opt_e="CVS,\\.cvsignore,\\.[oa]\$"        ;;    scpp )        str_tool="scpp"        str_usage="[-v|--verbose] [-p|--preserve] [-f|--filter <filter>] [-o|--output <ofile>] [-t|--template <tfile>] [-M|--mark <mark>] [-D|--define <dname>] [-C|--class <cname>] <file> [<file> ...]"        gen_tmpfile=yes        arg_spec="1+"        opt_spec="v.p.f+o:t:M:D:C:"        opt_alias="v:verbose,p:preserve,f:filter,o:output,t:template,M:mark,D:define,C:class"        opt_v=no        opt_p=no        opt_f=""        opt_o="lib.h"        opt_t="lib.h.in"        opt_M="%%MARK%%"        opt_D="cpp"        opt_C="intern"        ;;    version )        str_tool="version"        str_usage="[-l|--language <lang>] [-n|--name <name>] [-p|--prefix <prefix>] [-s|--set <version>] [-e|--edit] [-i|--increase <knob>] [-d|--display <type>] <file>"        arg_spec="1="        opt_spec="l:n:p:s:i:e.d:"        opt_alias="l:language,n:name,p:prefix,s:set,e:edit,i:increase,d:display"        opt_l="txt"        opt_n="unknown"        opt_p=""        opt_s=""        opt_e="no"        opt_i=""        opt_d="short"        ;;    -* )        echo "$0:Error: unknown option \`$tool'" 2>&1        echo "$0:Hint:  run \`$0 -h' for usage" 2>&1        exit 1        ;;    * )        echo "$0:Error: unknown command \`$tool'" 2>&1        echo "$0:Hint:  run \`$0 -h' for usage" 2>&1        exit 1        ;;esac####  COMMON UTILITY CODE###   commonly used ASCII valuesASC_TAB="	"ASC_NL=""#   determine name of toolif [ ".$tool" != . ]; then    #   used inside shtool script    toolcmd="$0 $tool"    toolcmdhelp="shtool $tool"    msgprefix="shtool:$tool"else    #   used as standalone script    toolcmd="$0"    toolcmdhelp="sh $0"    msgprefix="$str_tool"fi#   parse argument specification stringeval `echo $arg_spec |\      sed -e 's/^\([0-9]*\)\([+=]\)/arg_NUMS=\1; arg_MODE=\2/'`#   parse option specification stringeval `echo h.$opt_spec |\      sed -e 's/\([a-zA-Z0-9]\)\([.:+]\)/opt_MODE_\1=\2;/g'`#   parse option alias stringeval `echo h:help,$opt_alias |\      sed -e 's/-/_/g' -e 's/\([a-zA-Z0-9]\):\([^,]*\),*/opt_ALIAS_\2=\1;/g'`#   interate over argument lineopt_PREV=''while [ $# -gt 0 ]; do    #   special option stops processing    if [ ".$1" = ".--" ]; then        shift        break    fi    #   determine option and argument    opt_ARG_OK=no    if [ ".$opt_PREV" != . ]; then        #   merge previous seen option with argument        opt_OPT="$opt_PREV"        opt_ARG="$1"        opt_ARG_OK=yes        opt_PREV=''    else        #   split argument into option and argument        case "$1" in            --[a-zA-Z0-9]*=*)                eval `echo "x$1" |\                      sed -e 's/^x--\([a-zA-Z0-9-]*\)=\(.*\)$/opt_OPT="\1";opt_ARG="\2"/'`                opt_STR=`echo $opt_OPT | sed -e 's/-/_/g'`                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"                ;;            --[a-zA-Z0-9]*)                opt_OPT=`echo "x$1" | cut -c4-`                opt_STR=`echo $opt_OPT | sed -e 's/-/_/g'`                eval "opt_OPT=\${opt_ALIAS_${opt_STR}-${opt_OPT}}"                opt_ARG=''                ;;            -[a-zA-Z0-9]*)                eval `echo "x$1" |\                      sed -e 's/^x-\([a-zA-Z0-9]\)/opt_OPT="\1";/' \                          -e 's/";\(.*\)$/"; opt_ARG="\1"/'`                ;;            -[a-zA-Z0-9])                opt_OPT=`echo "x$1" | cut -c3-`                opt_ARG=''

⌨️ 快捷键说明

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