一些常见问题的新转折:
在我的交互式脚本中,我预先填充了用户输入,如下所示:
#process_line.sh
INPUT=$1 # previous value
read -e -p "> " -i "$INPUT" INPUT要实现命令历史记录,我调用process_line.sh
rlwrap ./process_line.sh $INPUT现在的问题是:如果我有"read -e"选项,我可以编辑预填充的输入,但是没有命令历史,相反,我可以有命令历史,感谢rlwrap,没有"read -e"选项,但是没有预填充(也就是说,"read -i"实际上什么都不做)。
当然,问题是我是否可以同时输入预填充、编辑和命令历史记录。
谢谢!
发布于 2011-09-09 21:19:23
关闭-e以进行读取。这样两个readline实现就不会冲突了。
要获得提示符,可以将-S "> "传递给rlwrap。
发布于 2011-09-13 03:43:08
从0.25版开始,这个用例已经出现在rlwrap手册中;具体怎么做有点取决于rlwrap的版本。
在rlrap0.37中,你可以这样做:
INPUT=$(rlwrap -o -S ">“-P $INPUT cat)
这种方法的优点是可以为每个输入变量提供其自己的历史记录和完成列表(使用-f和-H选项)
cygwin版本(0.24)确实很古老,但是自己编译rlwrap应该很容易。如果您愿意,您可以构建一个静态链接的版本(参见安装文件中的说明),并将其与脚本一起分发。
https://stackoverflow.com/questions/7362129
复制相似问题