Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Bash-Prepare命令在cli中不执行_Bash_Command Line Interface - Fatal编程技术网

Bash-Prepare命令在cli中不执行

Bash-Prepare命令在cli中不执行,bash,command-line-interface,Bash,Command Line Interface,我正在开发一个bash脚本,它允许用户配置许多设置(例如当前驱动程序或驱动程序列表、当前版本、当前测试套件、当前编译器或编译器列表等),并与许多工具(编译器、misra分析器、测试报告创建者等)配合使用。脚本定义了一些别名,例如:compile、test、misra、report等。当用户运行此类别名时,脚本将准备大约1-3个可使用该工具运行的示例命令,并在屏幕上回显示例命令,例如: s1 = misra current_driver current_compiler s2 = misra cu

我正在开发一个bash脚本,它允许用户配置许多设置(例如当前驱动程序或驱动程序列表、当前版本、当前测试套件、当前编译器或编译器列表等),并与许多工具(编译器、misra分析器、测试报告创建者等)配合使用。脚本定义了一些别名,例如:compile、test、misra、report等。当用户运行此类别名时,脚本将准备大约1-3个可使用该工具运行的示例命令,并在屏幕上回显示例命令,例如:

s1 = misra current_driver current_compiler
s2 = misra current_drivers_list current_compiler
s3 = misra current_drivers_list current_compilers_list
用户查看示例,选择最合适的类型s1、s2或s3 点击回车键。该脚本将所选命令添加到历史记录中,作为top命令。用户按下“向上箭头”并准备好编辑命令(如果需要)并在一切正常时按Enter键执行

现在,我想通过去掉“向上箭头键”来加快选择命令的过程。我想完成的是:当用户键入s1、s2或s3并点击Enter时,相应的命令会添加到命令行中,而不会执行。问题是,我希望获得与用户键入的命令相同的行为,这意味着用户在按Enter键启动命令之前,应该仍然能够对其进行编辑。 有什么方法可以用来实现这种行为吗


谢谢

可能与
bash有关
无法通过编程方式直接填充命令行。您可以使用
read
命令和
-i
选项,然后使用
eval
执行结果。在堆栈溢出的某个地方有一个与此相关的问题,因为我知道我提供了与上面描述的类似的答案,或者至少引用了由
zsh
提供的
print-z
命令,该命令完全可以执行您想要的操作。