当前位置: 首页 > wzjs >正文

上海做网站的公司官网个人网站备案名称填写的注意事项

上海做网站的公司官网,个人网站备案名称填写的注意事项,工程招标信息网,广告设计公司绩效考核概述 compgen 是一个 Bash 内置命令(built-in command),用于生成命令、别名、函数、文件等内容的自动补全选项。它是 Bash 可编程补全(programmable completion)功能的核心工具之一,通常与 complete 命令一…

概述

compgen 是一个 Bash 内置命令(built-in command),用于生成命令、别名、函数、文件等内容的自动补全选项。它是 Bash 可编程补全(programmable completion)功能的核心工具之一,通常与 complete 命令一起使用,用于增强终端的交互体验。compgen 命令的主要功能是根据指定的选项和条件,列出所有可能的补全选项,常用于脚本开发、命令行调试或探索系统中可用的命令和资源。

在 Linux、macOS、BSD 以及其他类 Unix 系统中,只要安装了 Bash shell,compgen 即可使用。通过 compgen,用户可以快速查看系统中可用的命令、别名、函数、变量、文件等内容,或者为自定义脚本提供补全支持。本文将详细介绍 compgen 命令的语法、选项、用法以及实际应用场景,并提供丰富的示例,帮助用户全面掌握这一工具。

语法

compgen 的基本语法如下:

compgen [选项] [-o 选项] [-A 动作] [-G 全局模式] [-W 词语列表] [-F 函数] [-C 命令] [-X 过滤模式] [-P 前缀] [-S 后缀] [单词]
  • 选项:控制 compgen 的行为,例如列出命令、别名或文件。
  • -o 选项:指定补全行为,例如是否按文件名补全。
  • -A 动作:指定要生成的补全类型,例如函数、变量或服务。
  • -G 全局模式:使用文件名扩展模式(glob pattern)匹配补全选项。
  • -W 词语列表:提供一组词语作为补全候选。
  • -F 函数:指定用于生成补全的函数。
  • -C 命令:指定用于生成补全的命令。
  • -X 过滤模式:过滤掉匹配指定模式的补全选项。
  • -P 前缀:为补全选项添加前缀。
  • -S 后缀:为补全选项添加后缀。
  • [单词]:可选的输入,用于匹配补全选项。

如果提供了 [单词] 参数,compgen 会生成与该单词匹配的补全选项;否则,它会列出所有可能的补全选项。

常用选项

compgen 支持多种选项,每个选项对应特定的补全类型或行为。以下是常用的选项及其功能:

选项描述
-a列出所有 Bash 别名(aliases)。
-b列出所有 Bash 内置命令(built-ins)。
-c列出所有可执行的命令(包括别名、函数和外部命令)。
-d列出目录(directories)。
-f列出文件(包括目录)。
-k列出 Bash 关键字(keywords)。
-v列出 Bash 变量(variables)。
-u列出用户名(users)。
-g列出组名(groups)。
-s列出服务(services)。
-j列出作业(jobs)。
-e列出导出的变量(exported variables)。

高级选项

选项描述
-A action指定补全动作,例如 function(函数)、service(服务)等。
-G globpat使用文件名扩展模式匹配补全选项。
-W wordlist从指定的词语列表中生成补全选项。
-X filterpat过滤掉匹配指定模式的补全选项(支持 ! 取反)。
-P prefix为每个补全选项添加前缀。
-S suffix为每个补全选项添加后缀。
-o option指定补全行为,例如 filenames(按文件名补全)。

完整的选项列表和描述可以通过以下命令查看:

help compgen

或查阅 Bash 手册页:

man bash

滚动到 compgen 部分。

常见用法与示例

以下是 compgen 的常见用法及其示例,涵盖了列出命令、别名、函数、文件等场景。

1. 列出所有可执行命令

使用 -c 选项列出所有可执行的命令,包括外部命令、别名和函数:

compgen -c

输出示例(部分):

ls
cd
grep
if
then
else

可以结合 grep 搜索特定命令:

compgen -c | grep gnome

输出示例:

gnome-calculator
gnome-terminal

2. 列出所有 Bash 别名

使用 -a 选项列出所有定义的别名:

compgen -a

输出示例:

ll
la
ls
grep

示例输出可能因系统配置而异。例如,如果定义了以下别名:

alias ll='ls -alF'
alias la='ls -A'

compgen -a 会列出 llla

3. 列出 Bash 内置命令

使用 -b 选项列出所有 Bash 内置命令:

compgen -b

输出示例:

alias
bg
bind
break
builtin
cd

4. 列出 Bash 关键字

使用 -k 选项列出所有 Bash 关键字:

compgen -k

输出示例:

if
then
else
elif
fi
case
esac

5. 列出 Bash 函数

使用 -A function 列出所有定义的 Bash 函数:

compgen -A function

输出示例(假设定义了以下函数):

my_function
backup

6. 列出文件或目录

使用 -f 列出当前目录下的文件(包括目录):

compgen -f

输出示例:

file1.txt
dir1
script.sh

使用 -d 只列出目录:

compgen -d

输出示例:

dir1
dir2

结合 -G 选项使用文件名模式:

compgen -f -G "*.txt"

输出示例:

file1.txt
file2.txt

7. 列出变量

使用 -v 列出所有 Bash 变量:

compgen -v

输出示例:

HOME
PATH
USER
XDG_CONFIG_DIRS

8. 使用词语列表补全

使用 -W 选项从指定词语列表中生成补全选项:

compgen -W "mon tue wed thu fri sat sun" s

输出示例:

sat
sun

9. 过滤补全选项

使用 -X 选项过滤掉匹配特定模式的补全选项:

compgen -c -X "*grep"

此命令列出所有命令,但排除包含 grep 的命令。

使用 ! 取反:

compgen -c -X "!*grep"

此命令只列出包含 grep 的命令。

10. 添加前缀或后缀

使用 -P-S 选项为补全选项添加前缀或后缀:

compgen -d -P "dir-" -S "-test"

输出示例:

dir-dir1-test
dir-dir2-test

高级应用

1. 自定义补全脚本

compgen 常用于编写 Bash 补全脚本,与 complete 命令配合使用。例如,为自定义命令 mycommand 添加补全功能:

_mycommand_complete() {local cur=${COMP_WORDS[COMP_CWORD]}COMPREPLY=($(compgen -W "option1 option2 option3" -- "$cur"))
}
complete -F _mycommand_complete mycommand

此脚本为 mycommand 提供 option1option2option3 的补全选项。用户输入 mycommand o 并按 Tab 键时,会自动补全为 option1option2

2. 统计命令数量

统计系统中可用的命令数量:

compgen -c | wc -l

输出示例:

2453

表示系统中总共有 2453 个可执行命令。

3. 结合 whatis 查看命令描述

结合 whatis 命令获取每个命令的简要描述:

#!/bin/bash
commands=$(compgen -c)
let count=1
for cmd in $commands; dowhat=$(whatis "$cmd" 2>/dev/null)if [ -n "$what" ]; thenecho "$count. $cmd: $what"((count++))fi
done

输出示例:

1. ls: ls (1) - list directory contents
2. cd: cd (bash) - change the shell working directory

此脚本遍历所有命令并打印其描述(如果存在)。

4. 排除别名和函数

若只想列出非别名、非函数的命令,可以结合 comm 命令:

comm -23 <(compgen -c | sort -u) <(compgen -akA function | sort -u)

此命令列出所有命令,排除别名、关键字和函数。

注意事项

  1. 性能问题compgen -c 可能生成大量输出,特别是在命令较多的情况下。建议结合 grepless 过滤或分页查看:

    compgen -c | less
    
  2. 环境依赖compgen 的输出依赖于当前 Shell 环境。例如,compgen -a 只会列出当前会话中定义的别名。

  3. 选项冲突:某些选项(如 -f-d)可能产生重复输出。例如,-f 包括目录,而 -d 只列出目录。使用时需明确需求。

  4. 补全脚本调试:在编写补全脚本时,可使用 set -x 启用调试模式,查看 compgen 的执行过程。

  5. 非 Bash 环境compgen 是 Bash 特有的内置命令,在其他 Shell(如 Zsh 或 Fish)中不可用。

权威来源与进一步阅读

以下是一些权威来源,供进一步学习 compgen 和 Bash 可编程补全:

结论

compgen 是 Bash 中一个功能强大且灵活的工具,不仅可以列出系统中可用的命令、别名、函数等资源,还能为自定义脚本提供自动补全功能。通过掌握 compgen 的各种选项和用法,用户可以显著提升命令行操作效率,特别是在脚本开发和系统管理中。无论是初学者还是高级用户,compgen 都是一个值得深入学习的工具。

希望本文的详细介绍和示例能帮助您更好地理解和使用 compgen 命令。

http://www.dtcms.com/wzjs/590582.html

相关文章:

  • 网站可以免费看wordpress优化服务器
  • 什么是企业网站pv无锡知名网站推广
  • 辽阳网站建设企业动漫在线制作网站
  • 做微信视频的网站python编程网站
  • 网站是做后台好还是做前台好企业网站排名运营
  • 雄安专业网站建设哪家好linux wordpress 伪静态
  • 深圳网站建设 推荐xtdseo认证网站源码
  • 单位网站建设费用wordpress文章静态
  • 四川seo整站优化网站开发自学资料
  • 可以做编程题的网站云南专业网站建站建设
  • 0基础建设网站高端网站设计技术分析
  • 沈阳网站推广有什么技巧wordpress 嵌入 插件
  • iis能建设网站吗怎么弄免费的php空间做网站
  • 网站的数据库怎么做wordpress关键词在哪里设置
  • 做网站为什么要去工厂在线做静态头像的网站
  • 宁波网站制作好公司django做的购物网站
  • 网站建设公司2018-10-1南阳网站优化
  • 文学类网站模板网站开发学多久
  • 购物网站要多少钱建设部官网网站
  • 教务系统门户网站品牌建设归哪个部门管
  • 黑科技赚钱软件汕头seo收费
  • 加强医院网站建设网站域名解析失败
  • 一流的常州网站优化动画设计培训中心
  • 直播网站怎么做网页的维护与更新
  • 做企业网站还有市场吗购物网站流量怎么做
  • 搭建一个网站需要哪些技术android开发 网站开发
  • 网站站长英语图库
  • 做暖暖视频网站大全视频拍摄公司推荐
  • 网站网页制作专业公司wordpress上删除主题
  • 东莞网站制作实力乐云seo合肥网站制作公司电话