在bash脚本中写入命令的输出将返回一个空文件

时间:2019-01-03 12:05:59

标签: bash sh stdout

我有一个bash脚本,用于将列表中每个存储库的所有提交者详细信息写入文件。

如果我手动执行这些步骤,则会写入文件并包含内容。但是,如果我使用bash脚本执行此操作,则写入的文件为空(无内容)。

您能帮我找出问题所在吗?

谢谢。

下面,您可以找到我的脚本。

#!/usr/bin/env sh

if [ $# -lt 1 ];then
       echo "usage: $0 <repos_list>"
       exit 1
fi

repos_list=$1

cat $repos_list | while read -r line || [[ -n "$line" ]]; 
do
    # Control will enter here if $line exists.
    if [ -d "$line" ]; then
        cd $line
        git shortlog -sne > git_commits.file 2>&1 
        echo --------------------------------
        echo "#Commits and committers for $line"
        echo --------------------------------
        cat git_commits.file
        echo --------------------------------
        rm -rf git_commits.file
        cd ..
    fi
done

0 个答案:

没有答案