2017-08-08 21 views
0

我想写一个bash命令,它会提示用户通过文本编辑器(vim或nano或emacs)进行多行输入,并将它作为参数的一部分注入。如何将Vim输出缓冲区转换为不同命令的命令行参数?

例如,如果我运行git命令 git commit --amend -m "<MY DESIRED MESSAGE>"它将修改提交消息与所需的消息。

但是,如果我这样做只是

git commit --amend它会打开一个命令行编辑器,并提示提交信息,一旦我将它保存将被注入命令消息。

此外,还有一种方法来存储从读取收到的输入并将其存储在变量中?

预先感谢您

+0

见https://stackoverflow.com/questions/7375434/capture-user-input-by-opening-a-text-editor-with-content –

回答

0

你应该做的是有编辑写一个文件,然后使用该文件的内容作为参数。

如:

nano /tmp/test.txt; git commit -m "$(cat /tmp/test.txt)"; rm /tmp/test.txt 
+0

感谢。使用'read'命令怎么样?有没有一种方法可以存储从读取中获得的内容? 我想有即时响应提示响应,直到没有来自输入的响应 –

相关问题