shell 脚本表达式求值到一个变量

shell script expression evaluation into a variable

下面的表达式

var=$(git log --since='$start_date' --until='$end_date' --author='$commit_author' | grep -i 'merge request\|pull request'  | wc -l)
echo $var 

将 var 打印为零

但是如果我回应上面的表达式

git log --since='2018-04-1' --until='2018-06-30' --author='so.sila@xes.com' | grep -i 'merge request\|pull request'  | wc -l

复制并通过终端运行

为什么 var 不存储值并且 returns 为零

原因是 '$start_date''$end_date' 等不会扩展到它们的值,因为它们在单引号中。尝试将其更改为双引号,您可能会有一些运气。