如何通过带编号的菜单获取Linux自动补全功能?

时间:2018-07-11 06:52:55

标签: linux bash autocomplete

我已经尝试了几天了,虽然我知道我可以编写一个bash函数以使其达到我想要的方式,但是我确信这个选项是现成的。 / p>

我最近已升级到RHEL 7.11,在以前的RHEL版本中,当使用双标签时,如果我的选项不明确,它将显示一个带编号的菜单。

考虑一下,我有一个包含以下文件的目录:

abc  abcd  abcde  abcdef  abcdefg  abcdefgh  abcdefghi

所以当我键入:

cat abc [tab][tab]

有多个比赛,我会得到:

1) abc
2) abcd
3) abcde
4) abcdef
5) abcdefg
6) abcdefgh
7) abcdefghi

随后,我可以输入'7' [tab] ,它将在选项 7)处连接文件。

当有很多类似的选项,并且许多文件以相同的字符开头时,这非常有用。(在我的服务器上,为清楚起见,文件名以系统名开头)。

有什么想法吗?

2 个答案:

答案 0 :(得分:1)

我推荐https://github.com/junegunn/fzf,我开始用此GREAT工具替换所有的内置菜单选项。

它具有bash支持,包括电池。

答案 1 :(得分:-6)

以.sh扩展名创建bash脚本文件

touch menutools.sh

使bash脚本文件可执行

chmod +x menutools.sh

将bash解释器插入脚本

echo '#!/bin/bash' > menutools.sh

使用基于菜单的脚本编辑脚本文件

#!/bin/bash
echo '*********************************************'
echo '*               Menu of Tools               *' 
echo '*********************************************'
echo -e "\n\n"
echo "(1) Create file"
echo "(2) Copy file"
echo "(3) Move file"
echo -e "\n\n"
echo "Enter your choice: "
read userChoice
if [ $userChoice == "1" ]; then
  clear;
  echo '*********************************************'
  echo '*               Menu of Tools               *' 
  echo '*********************************************'
  echo -e "\n\n"
  echo -e "************[Creating file]**************\n\n"
  echo "(1) Enter name for the file: "
  read fileName
  touch $fileName
  echo "$fileName created successfully." 
fi

运行脚本

./menutools.sh

bash menutools.sh