使用终端的自动完成路径功能输入到 shell 脚本

8 shell bash terminal shell-script

我想制作一个脚本:(1) 获取一个路径,让用户能够使用 tab 来自动完成,然后 (2) 从用户那里获取文件名,然后 (3) 在该路径上创建一个扩展名为 .文本。

我的问题是:我该怎么做 1.?我如何告诉 bash 要求输入是“自动完成”路径,最好是默认情况下已经填写了部分路径(比如 ~/x/)?

注意:路径几乎总是包含空格。

gle*_*man 16

read -p "enter a directory: " -i "$HOME/x/" -e path
Run Code Online (Sandbox Code Playgroud)

在 bash 会话中,输入 help read|less

  • `-i` 标志是在 `bash` 4.0 中添加的。`help '[r]ead'` 只获取 `read` 的帮助。请注意,虽然 `read -e` 将能够在 `~` 内完成,但它不会被扩展。 (2认同)
  • 这意味着您将在 $path 变量中获得文字波浪号,这可能难以处理。事后看来,使用`-i "$HOME/x/"` (2认同)