2017-02-27 55 views
1

我的bash脚本简化生产一些长端命令,例如如何从的bash脚本设置终端电流输入

git diff "file.one" "file.two" "file.million" 

之后,我希望今年建造命令不会从脚本中运行,但将其设置为终端输入,用户可以按“Enter”键并运行。这个我会做到以下几点:

  1. 用户可以运行之前编辑命令它
  2. 司令部将成为历史

是否有可能呢?

回答

0

一种方式做同样的事情是将项目推入历史:

 
history -s 'command to store' 

在此之后,用户将不得不按回到命令和编辑/执行它。

注:如果你做到这一点,必须将脚本来源执行,即用户必须运行. /path/to/script.sh,而不是仅仅/path/to/script.sh


让用户编辑命令在脚本执行前,你可以是这样的:

command='git diff "file.one" …' 
read -e -i "$command" command 
eval "$command" 

-e选项使用readline的,这样的文件名完成的作品和-i选项预填充输入字段与提供的文本。

之后您可以选择执行history -s "$command"(同样,脚本必须是 d才能正常工作)。

+0

它可以在OSX上工作吗?我读到:-i:无效的选项 – karabara