我为Git创建了一个别名:
alias gtbs='echo on Branch; git rev-parse --abbrev-ref HEAD; echo last Modified; git status -s;'
但是这会在换行符上打印输出
喜欢
on Branch:
develop
Added/Modified:
M scripts/myscript
而我只想在一行
on Branch: develop, Added/Modified: M scripts/myscript
答案 0 :(得分:1)
echo
命令添加了一个您正在观察的隐式换行符。
将-n
命令行选项传递给echo
(但是this is not POSIX-compliant,尽管很多shell都会实现它,以及来自coreutils
的/bin/echo
项目,通常在GNU / Linux系统上找到)或使用printf
command这样:
printf 'on branch: %s, last modified: %s' \
$(git rev-parse --abbrev-ref HEAD) $(git status -s)
(\\
用于格式化目的。)
您也可以使用反引号`...`
代替$(...)
。
另请注意git status
本身可能会产生跨越多行的输出,所以我想最明智的做法是让printf
在{{1}的输出之前插入换行符所以整个咒语将成为:
git status
如果出于某种原因, 意味着让printf 'printf 'on branch: %s, last modified:\n' \
$(git rev-parse --abbrev-ref HEAD) && git-status -s
输出一行,您可能希望从中删除任何换行符:
git status -s
...如果你想要多个字符的分隔符,那么最后一个插词会变得更加复杂:
printf '...last modified: %s' $(git status -s | paste -sd ,)