linux - Linux终端:如何在没有回车的情况下添加换行符?
问题描述
在 Linux 终端中,如何在不发出回车/发出命令的情况下添加换行符(换行符?)?
例如,就我而言,我想在 git commit 注释中添加几行,如下所示:
$ git commit -m "1. Removed comment blocks
2. updated .gitignore
3. added goto statement to hander
--Miklas"
如何在不实际输入命令的情况下为多行注释添加这些换行符?
我用谷歌搜索并尝试了很多东西(shift+return、alt+return、ctrl+return..等),但没有运气。泰姆·基思 :^)
解决方案
Shell 通常支持多行连续命令。如果shell“检测到”上一个命令不是“完整的”并且您输入了回车,它将打印PS2
并让您继续输入命令。默认PS2="> "
。
# I type:
# git commit -m "message<enter><enter>description"<enter>
$ git commit -m "message
>
> description"
no changes added to commit
它也适用于 shell 运算符,例如for
, while
, if
, case
:
$ for i in 1 2 3
> do
> echo $i
> done
1
2
3
我发现了一个显示该行为的youtube 视频。
您也可以在 bash 中使用 C-ish 引用:
git commit -m $'message\n\ndescription\n'
我有时会使用过程替代printf
:
git commit -m "$(printf "%s\n" "message" "" "description")"
最后你可以输入:
git commit
默认情况下应该打开一个完整的文件编辑器vim
。在该编辑器中键入您想要的多行消息,保存并退出编辑器,文件内容将被视为提交消息。
推荐阅读
- css - CSS:在某些选择器之前选择伪元素之后
- java - 在 JMeter 中发送肥皂消息中的动态值
- css - Vue + 顺风手风琴与过渡
- bootstrap-4 - 强制 justify-content-around 的最后一个元素与上一行的第一个元素对齐
- php - shopify如何删除应用程序卸载页面?
- java - TestNG beforeGroups 没有被执行
- python - 用于动态变量更改的 Jinja2 案例切换
- c - 需要帮助使用 qsort 从结构中对数组进行排序
- javascript - 通过选择 Div 属性更改 Div 的宽度
- sql - Oracle max(date) 显示不同的结果