首页 > 解决方案 > 使用shell在txt文件中的单行命令中添加6个目录

问题描述

面对以下错误 -

fatal: ambiguous argument '`SS_FrameProtoco SS_Codec SS_WcdmaEngineDrivers SS_LocalOam SS_LocalTelecom SS_W1plT`': 

未知版本或路径不在工作树中。使用 '--' 将路径与修订分开,如下所示:'git [...] -- [...]'

如何解决这个错误?我想在一行中添加两个不同的数字。

git log --shortstat --since "01.06.2020" --until "1.12.2020" \
SS_FrameProtocol SS_Codec SS_WcdmaEngineDrivers SS_LocalOam \
SS_LocalTelecom SS_W1plTx   | grep "files changed" | awk '{files+=$1;
inserted+=$4; deleted+=$6} END {print "files changed", files, "lines
inserted:", inserted, "lines deleted:", deleted}'

此命令有效,但我想在文本文件中传递目录名称。

标签: linuxgitshell

解决方案


如果您的文件夹中可能有空间(不是您的问题,但可能发生),您可以按照此处描述的方法

declare -a args=()
while IFS='' read -r -d '' item; do
  args+=( "$item" )
done <file
git log --shortstat --since "01.06.2020" --until "1.12.2020" -- "${args[@]}" | ...
                                                            ^^^^

如前所述,不要忘记双连字符--(我在这里提到了该语法


推荐阅读