当前位置: 首页 > 面试题库 >

bash:获取以给定字符串开头的命令列表

宋康安
2023-03-14
问题内容

是否可以使用Bash获取以某个字符串开头的命令列表?
我想在键入命令的开始后两次按 来获取打印的内容,例如,将其存储在变量中。


问题答案:

您应该能够使用 compgen 命令,如下所示:

compgen -A builtin [YOUR STRING HERE]

例如,“ compgen -A Builtin l”返回

let 
local 
logout

您可以使用其他关键字代替“ builtin”来获得其他类型的完成。Builtin为您提供Shell内置命令。“文件”为您提供本地文件名等。

下面是操作的列表(从BASH手册页 完整的 ,它使用 compgen ):

  alias      Alias names.  May also be specified as -a.
  arrayvar   Array variable names.
  binding    Readline key binding names.
  builtin    Names  of  shell builtin commands.  May also be specified as -b.
  command    Command names.  May also be specified as -c.
  directory  Directory names.  May also be specified as  -d.
  disabled   Names of disabled shell builtins.
  enabled    Names of enabled shell builtins.
  export     Names of exported shell variables.  May also be specified as -e.
  file       File names.  May also be specified as -f.
  function   Names of shell functions.
  group      Group names.  May also be specified as -g.
  helptopic  Help topics as accepted by the help builtin.
  hostname   Hostnames, as taken from the file specified by the HOSTFILE shell
                 variable.
  job        Job  names, if job control is active.  May also be specified as
                 -j.
  keyword    Shell reserved words.  May also be specified as -k.
  running    Names  of  running  jobs,  if  job  control  is active.
  service    Service names.  May also be specified as -s.
  setopt     Valid arguments for the -o option  to  the  set builtin.
  shopt      Shell  option  names  as  accepted by the shopt builtin.
  signal     Signal names.
  stopped    Names  of  stopped  jobs,  if  job  control  is active.
  user       User names.  May also be specified as -u.
  variable   Names  of  all  shell  variables.   May also be specified as -v.


 类似资料:
  • 这是我的浏览方法。我正在尝试通过“dictionaryEntry”对象的哈希图进行搜索,只查看条目的“word”部分。(b.word)。这个想法是您可以搜索整个字典并返回所有以给定方法的字符串开头的单词。例如,您可以返回所有以字符串“sto”开头的单词。我的想法是遍历哈希图,如果单词的子字符串,从位置零开始并以输入字符串的长度结束,它将被添加到数组列表中。然后将返回数组列表。

  • 问题内容: 我正在尝试更新数据库中的一堆列,以测试功能。我有一个使用休眠模式构建的表,因此为嵌入式实体创建的所有列均以相同的名称开头。即,等等。 我试图找出是否有办法对以下事情产生影响: 如果没有,我知道我可以做很长的路要走,如果我需要针对另一组不同的栏目再次进行此操作,则只是寻找一种将来可以帮助自己的方法。 问题答案: 没有方便的快捷方式,对不起。如果您必须做很多这样的事情,则可以创建一个函数来

  • 我得到以下字符串: 我想从里面拿走食物和饮料。 我尝试了以下代码: 但它给人的感觉是,食物很刺激,喝了很多,离食物很近,三个和四个。

  • 问题内容: 我有一个看起来像这样的数组: 我如何仅获取以其开头的元素? 问题答案:

  • 我使用JSCH-SSH库在“shell”通道中执行命令,但无法找到一种方法来做两件事:- 1)如何查找命令是否在远程unix box上完全执行? 2)如何在String中捕获命令输出,而不是在System.out控制台上打印? 下面是我的代码片段,它可以很好地在系统上显示shell命令输出。出来 注意:我不想使用“exec”通道,因为它为每个命令启动一个新进程,并且不记得导出的“session”变

  • 问题内容: 我正在尝试检查字符串是否以开头。我该如何检查? 问题答案: 使用 substr 函数返回字符串的一部分。 如果您要确保它不是另一个协议。我会改用https,因为https也可以匹配,例如http-protocol.com。 一般而言: