我试图在我的Ubuntu Amazon EC2盒子上更改当天的消息(MOTD),以便在SSH进入时显示我的一个目录的git状态。在shell脚本中缩进多行输出
从所有默认MOTD文件的输出必须在每一行,所以它看起来很好地缩进开始两个空间,但由于我的git status
输出跨越几行,如果我做echo -n " "
只缩进第一行之前。
任何想法如何让它缩进每一行?
谢谢!
我试图在我的Ubuntu Amazon EC2盒子上更改当天的消息(MOTD),以便在SSH进入时显示我的一个目录的git状态。在shell脚本中缩进多行输出
从所有默认MOTD文件的输出必须在每一行,所以它看起来很好地缩进开始两个空间,但由于我的git status
输出跨越几行,如果我做echo -n " "
只缩进第一行之前。
任何想法如何让它缩进每一行?
谢谢!
将其管理到sed
,以在每行的开头插入2个空格。
git status | sed 's/^/ /'
@ Barmar的答案建立在,这是做它一个整洁的方式:
indent() { sed 's/^/ /'; }
git status | indent
other_command | indent
实际上并没有太多增加,这是一个shell脚本中的一次性使用情况,所以bash子例程有点矫枉过正,但是谢谢 –
@MattFletcher:嗯,我认为使用子程序编写代码就像这样可以更容易为非bash教授(像我一样)弄清楚发生了什么事情。另外,如果你决定突然想要3个而不是2个空间,那么你只有一个地方可以纠正。 – Vering
@这是真的,我确实明白这样做的好处,我只是更多地建议它可能是一个评论,而不是一个答案本身,因为它几乎是相同的答案,并解决了一个从未出现过的问题第一个地方:) –
Perfect-正是我一直在寻找。认为这将是'sed'的东西,但我不是很有经验。谢谢! –