linux - BASH:自动完成 printf "%s"的 $keyword

标签 linux bash shell

<分区>

我必须为平凡的 printf "%s"找到一个不平凡的方法。 在我的例子中,所有关键字都是不同位置的物理文件。 我希望能够像使用 CLI 一样使用选项卡按钮来完成位置/文件,并显示所有以相同字母开头的文件。 是否可以将系统索引添加到 bash 脚本中? 例如:

#!/bin/bash

printf "%s" "The file is: "
read keyword

~~~~~~~~~

./script.sh
The file is: /home/user/file
(Hit tab)
file.txt file2 file5
/home/user/file.
(Hit tab)
/home/user/file.txt

文件可以位于不同的位置。一次只会提供 1 个参数。

最佳答案

printf 在这里不相关;它是您要完成的 read。在 bash 中,使用 -e 选项启用 Readline 支持。

read -e keyword

顺便说一句,您可以完全取消 printf 命令,方法是使用 -p 选项来打印提示:

read -p "The file is: " -e keyword

关于linux - BASH:自动完成 printf "%s"的 $keyword,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46999179/

相关文章:

linux - 为什么 strace 的 -c 和 -T 时间不一致?

linux - 杀死端口的 Bash 脚本

linux - 检查参数是文件还是目录

svn - VCS独立差异

vagrant 文件中的 Shell 环境变量仅先向上传递

regex - 测试参数是否为 5 位整数

c++ - 向项目添加类后对 'main' 的 undefined reference

Linux x86 NASM - 子例程 : Print a dword from EAX

arrays - 使用换行符将 bash 数组写入文件

bash - 在 bash 脚本中实现试运行