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


8

我想编写一个脚本,该脚本是:(1)获取一个路径,使用户能够使用制表符自动完成,然后(2)从用户获取文件名,然后(3)在该路径下创建一个扩展名为的文件。文本文件。

我的问题是:我该怎么办1.?我如何告诉bash要求输入“自动完成”路径,最好是部分路径(例如〜/ x /)已默认填充?

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

Answers:


15
read -p "enter a directory: " -i "$HOME/x/" -e path

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


谢谢!在osx上,我得到以下错误:“ -bash:读取:-i:无效的选项读取:用法:读取[-ers] [-u fd] [-t超时] [-p提示符] [-a数组] [-n nchars] [-d delim] [name ...]“这是osx的东西吗?

它确实可以在Debian中工作,这是我计划使用的地方。:)

您可能在Mac上安装了较旧版本的bash:echo $BASH_VERSION
glenn jackman 2013年

2
-i标志是在bash4.0 中添加的。仅help '[r]ead'获得帮助read。请注意,虽然read -e将能够在内部完成~,但不会被扩展。
斯特凡Chazelas

2
这意味着您将在$ path变量中得到文字波浪号,这可能很难处理。事后看来,请使用-i "$HOME/x/"
glenn jackman
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.