小编use*_*575的帖子

Git别名与位置参数

基本上我想尝试别名:

git files 9fa3
Run Code Online (Sandbox Code Playgroud)

...执行命令:

git diff --name-status 9fa3^ 9fa3
Run Code Online (Sandbox Code Playgroud)

但是git似乎没有将位置参数传递给alias命令.我试过了:

[alias]
    files = "!git diff --name-status $1^ $1"
    files = "!git diff --name-status {1}^ {1}"
Run Code Online (Sandbox Code Playgroud)

......以及其他一些但不起作用.

退化的情况是:

$ git echo_reverse_these_params a b c d e
e d c b a
Run Code Online (Sandbox Code Playgroud)

......我怎么能做这个工作?

git parameters alias command position

244
推荐指数
7
解决办法
5万
查看次数

最好的(?)方法为半便携式shell脚本制作弹出菜单?

基本上我想说:

  echo `grep ^foo /usr/share/dict/words | popup_menu`
Run Code Online (Sandbox Code Playgroud)

...并且有一些类型的键盘可导航菜单弹出或选择工具,非常类似于vim的":Explore"机制的工作原理.

"使用标准工具随处可轻松工作"的极高奖励积分

也可以接受的是"需要某种额外的配置文件或5-10行shell脚本"

不太可接受的是"下载这个perl库或100行python脚本等等......"此时,我宁愿尝试找到一些实际的程序/包来安装并将其列为硬依赖.但是如果你能想出一个2-5行的perl/python脚本,它不需要追踪那些可能也可以工作的库.

我调查过:

  • Dialog - 看起来更适合"shell应用程序"而不是ad-hoc脚本(看起来可能有办法让它做我想做的事情),缺点是它会覆盖当前的屏幕状态

  • Curses - 似乎它的目标是"C"或者需要用作perl/python库的一部分,必须使用这个编写我自己的菜单程序

  • bash"select"内置 - 通过数字选择工作,而不是键盘导航,使用起来有点尴尬,但相当接近

  • Vim - "grep ^ foo/usr/share/dict/words | vim - "...这让你惊讶地接近,只是缺少"将输入键绑定到终端打印当前行并退出"

...那么,我如何制作或找到一个体面的,简单的,特别的菜单制作者用于bash脚本,当我在命令行上懒惰时?

 ... git checkout -b `git branch -a | menu`
 ... ssh `grep foo /etc/hosts | menu`
 ... rm `ls | menu`  # ignore obvious quoting issues with this...
Run Code Online (Sandbox Code Playgroud)

编辑:感谢目前为止的答案,但我想再次强调我正在寻找ASCII /文本菜单(不是xwindows).我正在尝试一些本地的东西,但没有什么能够达到最佳状态.

bash shell scripting interactive menu

5
推荐指数
1
解决办法
1954
查看次数

标签 统计

alias ×1

bash ×1

command ×1

git ×1

interactive ×1

menu ×1

parameters ×1

position ×1

scripting ×1

shell ×1