首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

如何将bash `compgen`与我自己的脚本选项一起使用?

要将bash compgen与自己的脚本选项一起使用,可以按照以下步骤进行:

  1. 确定脚本选项:首先,确定你的脚本需要哪些选项。这些选项可以是命令行参数、环境变量或配置文件中的设置。
  2. 编写脚本:使用你熟悉的编程语言编写脚本,并在脚本中处理这些选项。根据选项的不同,你可以执行不同的操作或调用不同的函数。
  3. 使用compgen生成补全列表:在脚本中,你可以使用compgen命令生成补全列表。compgen命令可以根据给定的模式生成匹配的列表。例如,如果你的脚本有一个选项是--mode,你可以使用以下命令生成补全列表:
  4. 使用compgen生成补全列表:在脚本中,你可以使用compgen命令生成补全列表。compgen命令可以根据给定的模式生成匹配的列表。例如,如果你的脚本有一个选项是--mode,你可以使用以下命令生成补全列表:
  5. 其中,-W选项指定了一个以空格分隔的选项列表,$cur是当前正在输入的文本。
  6. 集成补全功能:将生成的补全列表与你的脚本集成起来。你可以使用bash的补全功能来实现这一点。在你的脚本中,可以定义一个补全函数,并将其与你的脚本关联起来。例如,你可以在脚本中添加以下代码:
  7. 集成补全功能:将生成的补全列表与你的脚本集成起来。你可以使用bash的补全功能来实现这一点。在你的脚本中,可以定义一个补全函数,并将其与你的脚本关联起来。例如,你可以在脚本中添加以下代码:
  8. 其中,_complete_my_script是补全函数的名称,opts是选项列表,my_script是你的脚本名称。
  9. 测试补全功能:保存脚本并在命令行中测试补全功能。当你输入你的脚本名称后,按下Tab键,应该会显示补全列表。

这样,你就可以将bash compgen与你自己的脚本选项一起使用了。记住,根据你的脚本的具体需求,你可能需要根据不同的选项生成不同的补全列表。

页面内容是否对你有帮助?
有帮助
没帮助

相关·内容

linux下命令自动补全总结

很多命令都会提供一个bash-complete脚本,在执行该命令时,敲tab可以自动补全参数,会极大提高生产效率。...docker命令自动补全 yum install docker后,会有一个文件: /usr/share/bash-completion/completions/docker ; 显然,该脚本是用于bash...“Tab”键自动补全命令或文件名,这种功能其实可以在shell脚本中实现,使得使用“Tab”键可以自动补全自定义shell函数,相关命令有三个,compgen、complete和compopt。...1、compgen compgen [option] [word] compgen命令根据option生成与word可能匹配补全,并打印到标准输出中,这些选项可以是内建命令complete所支持任何选项...对于选项“-G”、“-W”、“-X”、“-P”和“-S”,应该使用括号进行保护,防止补全开始前被扩展。 “-o bashdefault”:如果没有生成补全条目,就使用bash默认其它补全。

6.4K50

Linux Shell命令自动补全实现

背景介绍 最近在完成一个由linux shell脚本编写工具时,发现在实现多个功能时,冗长多个参数不仅难记而且大小写混杂,虽然“悉心”地写了完备'-h'帮助文档,但是为了实现其中一个功能,仍然需要输入多个冗长字符串来定位某个大选项选项所对应功能...实现思路 在 linux shell 下本身有着体验极佳命令补全功能,即[Tab][Tab]。现通过自定义该程序命令补全脚本实现命令补全。...重点说明 执行shell 函数,函数中生成COMPREPLY作为候选补全结果 compgen(筛选命令) 用来筛选生成匹配单词候选补全结果 [root@localhost ~]# help compgen...,生成候选补全列表 compopt(修改补全命令设置) 用于修改补全命令设置,这个命令必须在补全函数中使用,否则会报错。....bash_profile中进行调用,亦可放于/etc/bash_completion.d/下,这样在下次登录终端时即可自动source自动补全脚本

5.6K31

【玩转Lighthouse】一键设置Linux轻量服务器安全登录

很多用户日常都是使用windows操作系统,Linux操作系统接触比较少;尤其是非图形界面的Linux。...往往都是看着UP主视频教程一步步设置,而这些教程为了省事,往往是直接使用root用户登录、端口全开、防火墙彻底删除!这种操作很大概率是五分钟变“肉鸡”.......这里提供一种相对安全设置,设置分两步: 1、设置防火墙规则,入站规则只开放必要端口,比如ssh登录端口等 2、ssh登录设置,本文重点介绍ssh登录设置 ①尽量不要使用系统提供统一用户名...),以便小白个性化修改,如果不想修改也可以直接执行: bash <(curl -sL ecgcc.cc/ssh) 脚本全文: #!...自定义模式:需要自己删减组合模块" && echo -e read -n 1 -p """执行“自动模式”请按“y”,按其他任意键执行“手动模式”,“自定义模式”请按ctrl+c退出编辑脚本.....

96640

玩转PMan

安装 假设你系统已经存在pear命令了,那么接下来就是一招鲜了: shell> pear install doc.php.net/pman 安装好后使用非常方便,就和Linux下常见man命令一样用法...: shell> pman strlen 显示效果上也和man命令一样,如下图所示: PMan Command 扩展 以前我习惯于使用CHM格式PHP文档,因为它检索功能很方便,只要记住开头几个字母就能查到想要内容...下面以CentOS为例(其它Linux可能有差异),前提是先安装EPEL,然后执行命令: shell> yum install bash-completion 缺省会安装不少现成bash-completion...脚本,可以参考它们实现PMan对应脚本: shell> cat /usr/share/bash-completion/pman # pman(1) completion have pman && _...fi COMPREPLY=(${COMPREPLY[@]##*/}) COMPREPLY=(${COMPREPLY[@]%.*.*}) COMPREPLY=($(compgen

82020

Linux 命令(250)—— enable 命令(builtin)

Linux 执行命令时,总是先在自己 Shell builtin 中查找该命令,如果找到则执行该命令;如果找不到该命令,则会从环境变量 PATH 指定路径中依次去查找待执行命令。...因为了解了这一点,所以看起来好像没有办法编写用户自己命令来替代 Shell builtin 命令。幸运是,有了 enable 命令我们就能做到了。...不带选项时,每一个 NAME 内嵌命令都会被启用。 不带任何选项和参数单独执行 enbale 将显示所有启用 Shell 内建命令。 3.选项说明 -a 打印所有内置命令,并显示是否启用。...控制动态加载选项: -f 从共享对象 FILENAME 文件中加载 NAME 内嵌命令。 -d 删除以 -f 选项加载内嵌命令。...使用 -p 选项和单独执行 enable 效果是一样,即enable -p 等同于enable。

42870

Shell 内建命令:Shell 内在魔力

内建命令caller返回活动子函数调用的上下文cd将当前目录切换为指定目录command执行指定命令,无需进行通常 shell 查找compgen为指定单词生成可能补全匹配complete显示指定单词是如何补全...read 命令用法为:# options 表示选项# variables 表示用来存储数据变量,可以有一个,也可以有多个read [-options] [variables]options 支持选项有.../bin/bash# 使用 read 命令给多个变量赋值read -p "Enter your name, age and city ===> " name age cityecho "你名字为:${...aAfFgilprtux 支持选项有:选项说明-f name列出之前由用户在脚本中定义函数名称和函数体。...掌握这些内建命令,可以帮助你更高效地编写 Shell 脚本和命令行程序。希望这篇文章能够帮助你更好地理解和使用 Shell 内建命令。

9500

MobaXterm工具连接Linux服务器入门使用手册,国产化泰山服务器连接工具使用演示

第二章:工具使用 ① 连接服务器 我们建个 session,后续就会直接存在列表中,点开就能连接服务器了。 选 SSH,host 直接输入我们服务器ip就可以了。 ?...使用 `info bash' 来获得关于 shell 更多一般性信息 使用 `man -k' 或 `info' 来获取不在列表中命令更多信息. 名称旁边星号 (*) 意味着该命令被禁用....compgen [-abcdefgjksuv] [-o 选项] [-A 动> complete [-abcdefgjksuv] [-pr] [-DE] [-o 选> compopt [-o|+...o 选项] [-DE] [名称 ...]...选项: -p 以可重用格式打印所有的已定义别名 退出状态: 除非一个没有定义名字被作为参数提供,否则 alias 返回值为真。

1.9K30

如何入门 Bash 编程

如果你已经频繁地使用过了 Bash,则向 Bash 编程过渡相对容易。但是,如果你不曾使用Bash,你会很高兴地了解到它是一种为清晰和简单而构建简单语言。...通过使用 GhostScript 处理了几天任务,我确认这是解决我问题方法。 编写基本脚本来运行命令,只不过是复制我用来从 PDF 中删除图像命令和选项,并将其粘贴到文本文件中而已。...将 hello.sh 更改为: echo $1 用引号将两个参数组合在一起来运行脚本: $ bash hello.sh "hello bash" hello bash 对于我 PDF 瘦身项目,我真的需要这种非交互性...镜像,学习编写 Bash 脚本都需要先使用 Bash,然后学习如何将这些脚本从仅仅是一个命令列表变成响应输入东西。...它向你介绍了特定于 Bash 编程概念,并且通过学习构造,你可以开始构建自己命令。当然,它是免费,并根据 创作共用许可证 进行下载和分发授权,所以今天就来获取它吧。

93030

在持续集成 (CI) 中使用 .NET SDK 和工具

命令、选项、输入和输出都相同,可通过提供唯一内容来获取用于生成应用工具和系统。 本文档重点介绍了 CI 工具获取方案,并提供了有关如何设计和构建生成脚本建议。...CI 生成服务器安装选项 使用本机安装程序 本机安装程序适用于 macOS、Linux 和 Windows。 安装程序需要拥有对生成服务器管理员 (sudo) 访问权限。...CI 安装示例 此部分介绍了如何使用 PowerShell 或 bash 脚本进行手动安装,同时还介绍了多个服务型软件 (SaaS) CI 解决方案。...可以使用 PowerShell 或 bash 脚本安排 .NET 命令,也可以使用概述生成进程项目文件。 业务流程部分详细介绍了这些选项。...下面是一相对简单 PowerShell 脚本,说明了如何获取 .NET SDK,以及如何将它安装到 Windows 生成服务器上:

49510

Shell脚本——内置命令

一、内置命令 所谓 Shell 内置命令,就是由 Bash 自身提供命令,而不是文件系统中某个可执行文件。...选项 说明 -a array 把读取数据赋值给数组 array,从下标 0 开始。...六、下表列出了 Bash Shell 中直接可用内建命令 命令 说明 : 扩展参数列表,执行重定向操作 ....,无需进行通常 shell 查找 compgen 为指定单词生成可能补全匹配 complete 显示指定单词是如何补全 compopt 修改指定单词补全选项 continue 继续执行 for...readarray 从 STDIN 读取数据行并将其放入索引数组 readonly 从 STDIN 读取一行数据并将其赋给一个不可修改变量 return 强制函数以某个值退出,这个值可以被调用脚本提取

2.1K10

Linux之shell编程基础

、csh、zsh等,不同shell都有自己特点以及用途。.../bin/bash [指定告知系统当前这个脚本使用shell解释器] Shell相关指令 文件命名规范: 文件名.sh .sh是linux下bash shell 默认后缀 使用流程:...中间不能有空格,可以使用下划线“_”。 不能使用标点符号。 不能使用bash关键字(可用help命令查看保留关键字)。 案例1:使用变量改写入门脚本第1个shell脚本。 ? ?.../bin/bash val=`expr 2 + 2` echo "两数之和为 : $val" 两点注意: 表达式和运算符之间要有空格,例如 2+2 是不对,必须写成 2 + 2,这与我们熟悉大多数编程语言不一样...步骤: 调用tail指令 系统把后续选项传递给tail Tail先去打开指定文件 取出最后10行 问题:自己shell是否也可以像内置命令一样传递一些选项呢?

3.3K20

在Linux使用Bash脚本命令

编写Bash脚本或在Linux命令行上工作时,最常见任务之一是读写文件。 本文介绍了如何使用重定向操作符和tee命令或者在bash脚本将文本写入文件。...使用重定向操作符写入文件 在Bash中,输出重定向使您可以从命令捕获输出并将其写入文件。...这是一个简单示例,显示了如何将echo命令输出重定向到文件: echo "this is a line" > file.txt 为防止覆盖现有文件,请使用内置set启用“ noclobber”选项...>|运算符可让您覆盖Bash“ noclobber”选项: set -o noclobber echo "this is a line" >| file.txt >>运算符将输出追加到文件末尾,而不是覆盖文件...要将输出附加到文件,请使用-a(--append)选项调用命令: echo "this is a line" | tee -a file.txt 如果您不希望tee写入标准输出,则可以将其重定向到/dev

2K10

收集 Linux VPS 在线重装系统脚本

有的 VPS 服务商提供了较多种类系统选择,有的却没有。如果你发现你希望重装系统服务商没有提供,可以考虑自己安装。...---- 重装脚本 - 来自萌咖 以下是来自萌咖一键重装脚本发布贴: [ Linux VPS ] Debian(Ubuntu)网络安装/重装系统一键脚本 - 萌咖 [ Linux VPS ] CentOS...可以设置安装时 root 用户密码: bash DebianNET.sh -d 9 -v 64 -a -p WalterlvPwd ? 如果你希望设置更多安装选项,也可以选择手动安装。...欢迎转载、使用、重新发布,但务必保留文章署名 吕毅 (包含链接: https://blog.walterlv.com ),不得用于商业目的,基于本文修改后作品务必以相同许可发布...如有任何疑问,请 与我联系 (walter.lv@qq.com) 。

4.1K30

十个提升生产力 bash 技巧

我喜欢钻研bash环境。很多时候,在使用bash编程中,有些问题一遍又一遍重复遇到。每次我都需要重新思考这些问题解决方法。...直到有一天我无法忍受,于是坐下来,编写一个通用函数,放入我.bashrc文件中,部署到电脑上。 希望我这些追求最大化命令行效率努力成果也能给其他喜欢使用bash朋友们带来一些帮助。...我更大期望是我这种行为能引起其他朋友互动——给我提建议、提出更好bash技巧。 别的不多说了,下面就是我总结。 ?...: docker rmi $(docker images | col 3 | xargs | skip 1) 技巧九、创建自己命令包 在bash里,你可以很容易创建自己命令组件,你可以看一下下面我写...总结 你可以试一下我这个.bashrc文件,或你自己也可以写一个。你有更好更多技巧吗?请写在下面的评论里。

73760
领券