shell 编程小助手


原文链接: shell 编程小助手

shell 编程小助手

在众多命令中,一个命令可以帮助你进行shell编程,这个命令就是--- help.参数很多,对新老手都有帮助.

直接在命令行输出help,可以看到命令简述,显示结果已做简单排版,方便查看

这些 shell 命令是内部定义的。请输入 `help' 以获取一个列表。
输入 `help 名称' 以得到有关函数`名称'的更多信息。
使用 `info bash' 来获得关于 shell 的更多一般性信息。
使用 `man -k' 或 `info' 来获取不在列表中的命令的更多信息。

名称旁边的星号(*)表示该命令被禁用。

 job_spec [&]
 history [-c] [-d 偏移量] [n] 或 history -anrw [文件名] 或 history -ps 参数 [参数...]>
 (( 表达式 ))
 if 命令; then 命令; [ elif 命令; then 命令; ]... [ else 命令; ] fi
 . 文件名 [参数]
 jobs [-lnprs] [任务声明 ...] 或 jobs -x 命令 [参数]
 :
 kill [-s 信号声明 | -n 信号编号 | -信号声明] 进程号 | 任务声明 ... 或 kill -l [信号声明]
 [ 参数... ]
 let 参数 [参数 ...]
 [[ 表达式 ]]
 local [option] 名称[=值] ...
 alias [-p] [名称[=值] ... ]
 logout [n]
 bg [任务声明 ...]
 mapfile [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组]
 bind [-lpsvPSVX] [-m keymap] [-f filename] [-q name] [-u name] [-r keyseq>
 popd [-n] [+N | -N]
 break [n]
 printf [-v var] 格式 [参数]
 builtin [shell 内建 [参数 ...]]
 pushd [-n] [+N | -N | 目录]
 caller [表达式]
 pwd [-LP]
 case 词 in [模式 [| 模式]...) 命令 ;;]... esac
 read [-ers] [-a 数组] [-d 分隔符] [-i 缓冲区文字] [-n 读取字符数] [-N 读取字符数] [-p 提示符] [>
 cd [-L|[-P [-e]] [-@]] [dir]
 readarray [-n 计数] [-O 起始序号] [-s 计数] [-t] [-u fd] [-C 回调] [-c 量子] [数组]
 command [-pVv] 命令 [参数 ...]
 readonly [-aAf] [名称[=值] ...] 或 readonly -p
 compgen [-abcdefgjksuv] [-o 选项]  [-A 动作] [-G 全局模式] [-W 词语列表]  [-F 函数] [-C>
 return [n]
 complete [-abcdefgjksuv] [-pr] [-DE] [-o 选项] [-A 动作] [-G 全局模式] [-W 词语列表] >
 select NAME [in 词语 ... ;] do 命令; done
 compopt [-o|+o 选项] [-DE] [名称 ...]
 set [--abefhkmnptuvxBCHP] [-o 选项名] [--] [参数 ...]
 continue [n]
 shift [n]
 coproc [名称] 命令 [重定向]
 shopt [-pqsu] [-o] [选项名 ...]
 declare [-aAfFgilnrtux] [-p] [name[=value] ...]
 source 文件名 [参数]
 dirs [-clpv] [+N] [-N]
 suspend [-f]
 disown [-h] [-ar] [任务声明 ...]
 test [表达式]
 echo [-neE] [参数 ...]
 time [-p] 管道
 enable [-a] [-dnps] [-f 文件名] [名称 ...]
 times
 eval [参数 ...]
 trap [-lp] [[参数] 信号声明 ...]
 exec [-cl] [-a 名称] [命令 [参数 ...]] [重定向 ...]
 true
 exit [n]
 type [-afptP] 名称 [名称 ...]
 export [-fn] [名称[=值] ...] 或 export -p
 typeset [-aAfFgilrtux] [-p] 名称[=值] ...
 false
 ulimit [-SHabcdefilmnpqrstuvxT] [limit]
 fc [-e 编辑器名] [-lnr] [起始] [终结] 或 fc -s [模式=替换串] [命令]
 umask [-p] [-S] [模式]
 fg [任务声明]
 unalias [-a] 名称 [名称 ...]
 for 名称 [in 词语 ... ] ; do 命令; done
 unset [-f] [-v] [-n] [name ...]
 for (( 表达式1; 表达式2; 表达式3 )); do 命令; done
 until 命令; do 命令; done
 function 名称 { 命令 ; } 或 name () { 命令 ; }
 variables - 一些 shell 变量的名称和含义
 getopts 选项字符串 名称 [参数]
 wait [-n] [id ...]
 hash [-lr] [-p 路径名] [-dt] [名称 ...]
 while 命令; do 命令; done
 help [-dms] [模式 ...]
 { 命令 ; }

可以看到,涉及的命令非常之多,如果想学习或者了解某个命令的用法,例如,我想看看while循环,

help while
while: while 命令; do 命令; done
    只要测试成功即执行命令。

    只要在 `while' COMMANDS 中的最终命令返回结果为0,则
    展开并执行 COMMANDS 命令。

    退出状态:
    返回最后一个执行的命令的状态。

也可以使用man查看更详细的

man help

然后查找while

while list; do list; done
until list; do list; done
      while  命令不断地执行序列  do list,直到序列中最后一个命令返回 0。 until 命令和 while 命令等价,除了对条件的测试恰好相反;序列 do list
      执行直到序列中最后一个命令返回非零状态值。  while  和   until   命令的退出状态是序列   do   list   中最后一个命令的退出状态,   或者是
      0,如果没有执行任何命令。

现在有了help,随时随地都可以学习或者快速写出正确的shell脚本了.

`