1
我的bash脚本简化生产一些长端命令,例如如何从的bash脚本设置终端电流输入
git diff "file.one" "file.two" "file.million"
之后,我希望今年建造命令不会从脚本中运行,但将其设置为终端输入,用户可以按“Enter”键并运行。这个我会做到以下几点:
- 用户可以运行之前编辑命令它
- 司令部将成为历史
是否有可能呢?
我的bash脚本简化生产一些长端命令,例如如何从的bash脚本设置终端电流输入
git diff "file.one" "file.two" "file.million"
之后,我希望今年建造命令不会从脚本中运行,但将其设置为终端输入,用户可以按“Enter”键并运行。这个我会做到以下几点:
是否有可能呢?
一种方式做同样的事情是将项目推入历史:
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才能正常工作)。
它可以在OSX上工作吗?我读到:-i:无效的选项 – karabara