使“完整”内置命令适用于“读取”命令

使“完整”内置命令适用于“读取”命令

我想编写一个添加/创建文件的脚本(就像这样touch做)。但是,有自己的东西。第一行将是变量。在哪里:

echo -n "Choose your folder to save the file: "
read dir
echo -n "What is the name of your file: "
read name

但在这种情况下,我应该输入完整路径,但我想使用 TAB 按钮来完成查询。

我只想让 TAB 按钮在我的脚本中起作用。就像它与 cat、cd 和许多其他命令一起使用一样。

提前致谢。

答案1

您希望在向 Bash 输入时使用制表符补全功能吗read?然后read -e就是你要找的(手动的):

选项: -e 使用 Readline 获取交互式 shell 中的行

例如

/tmp/foo$ 触摸 abcdef abcghi
/tmp/foo$ read -e -p '输入文件名:'
输入文件名:ab[标签]
abcdef abcghi  

尽管您确实应该让脚本接受输入作为命令行参数。这样,从其他脚本或 shell 循环等运行它就更容易了。

像这样的东西$1是脚本的第一个参数,$#保存参数的数量。

#!/bin/bash
if [ "$#" != 1 ]; then
        echo "Usage: $0 <filename>"
        exit 1
fi
echo "Doing something with '$1'..."

相关内容