如何在myshell中实现命令自动完成?

如何在myshell中实现命令自动完成?,shell,readline,Shell,Readline,我正在用C编写自己的shell。我知道可以使用readline库使用TAB来使用路径的自动完成,但它只能用于路径的自动完成,不能用于命令 例如,如果我编写了clea并按下TAB键,它既不清楚,也不建议在两次按下TAB键时使用任何类似的命令。如何操作?您的shell还需要实现一个PATH变量,它是一个目录列表,用于搜索非内置命令。例如,如果PATH具有值/usr/bin:/bin,则如果/usr/bin/clear或/bin/clear存在,则您的完成函数将完成cle到清除

我正在用C编写自己的shell。我知道可以使用
readline
库使用TAB来使用路径的自动完成,但它只能用于路径的自动完成,不能用于命令


例如,如果我编写了clea并按下TAB键,它既不清楚,也不建议在两次按下TAB键时使用任何类似的命令。如何操作?

您的shell还需要实现一个
PATH
变量,它是一个目录列表,用于搜索非内置命令。例如,如果
PATH
具有值
/usr/bin:/bin
,则如果
/usr/bin/clear
/bin/clear
存在,则您的完成函数将完成
cle
清除