如何将字符串作为命令传递给bash脚本中的for循环

时间:2016-05-27 14:52:07

标签: git bash shell ubuntu grep

我正在研究一个bash脚本(我很新做这个),它将遍历我使用GIT提交的所有文件。但是,当我将命令传递给for循环时,我收到以下错误: 致命的:模糊的参数'|':未知的修订或路径不在工作树中。 我传递给循环的命令在终端中工作正常。我有以下脚本:

我运行脚本如下:BYPASS_LEGACY = yes ./check_debug_code.sh

#!/bin/bash

if [ "$BYPASS_LEGACY" == "yes" ]
then
gitCommand="git diff --cached --name-only | egrep -v'(folder1|folder2|([A-Za-z])\w+.*X)'" 
else
gitCommand="git diff --cached --name-only"
fi

DEBUG_CODE_FOUND="no"

for i in "$($gitCommand)"
do 
r=$(grep -nrH --color=always 'dump\|print_r\|console.log(\|var_dump(\|echo\|print(' $i) 
if [ "$r" != "" ];then
echo "$r"
DEBUG_CODE_FOUND="yes"
fi
done
if [ "$DEBUG_CODE_FOUND" == "yes" ];then
   echo "======================please remove the Debug to be able to commit.========================"
exit 1
fi
exit 0

任何帮助都会非常有用。

谢谢。

1 个答案:

答案 0 :(得分:0)

您想要的是evalbash -c。 - rr