我想将保存在bash变量中的整数传递给git show --format
,我该怎么做呢?
当我传递变量时,git formatter将其视为文字并且不检索其值,而是打印出变量的名称。
我编写了一个脚本来进行一些处理,但为了简洁起见,我将粘贴脚本的相关部分:
git show -s --format='%C(yellow)commit %H%C(reset) %C(magenta bold)(commit message lines: $lines)%C(reset)%n%B' $i
目前,它输出的内容如下:
commit 6fc73ae81627edf220d3005eafbdd3d7f5f898d7 (commit message lines: $lines)
Fix foo
Fixing foo consisted of:
- Fixing bar
- Fixing baz
我希望它输出的是:
commit 6fc73ae81627edf220d3005eafbdd3d7f5f898d7 (commit message lines: 5)
Fix foo
Fixing foo consisted of:
- Fixing bar
- Fixing baz
答案 0 :(得分:1)
你可以打破单引号,附加你的变量,然后恢复单引号。只要两者之间没有空格,shell就会将其视为单个值(参见word splitting):
Customer.findAll(...)
答案 1 :(得分:1)
对于这种特殊情况,使用双引号而不是单引号引用格式字符串是安全的:
git show -s --format="%C(yellow)commit %H%C(reset) %C(magenta bold)(commit message lines: $lines)%C(reset)%n%B" $i
在双引号内,shell执行变量扩展,在单引号内不执行:
> echo "HOME=$HOME"
HOME=/home/leon
> echo 'HOME=$HOME'
HOME=$HOME