0

我在使用 Python 时遇到了类似的问题,readlines()但我不确定这里是否相同。

read命令正在挂起我的 bash 脚本。

generate_email()
{
    # --- Arguments
    oldrev=$(git rev-parse $1)
    newrev=$(git rev-parse $2)
    refname="$3"

    # ... some code ...
}

# ... more code ...

while read oldrev newrev refname
do
    generate_email $oldrev $newrev $refname
done

有想法该怎么解决这个吗?

4

2 回答 2

2

您不是在告诉 read 读取任何内容。所以它只是在等待来自stdin.

如果你想从文件中读取,你需要read像这样使用:

while read -r oldrev newrev refname; do
  generate_email "$oldrev" "$newrev" "$refname"
done < /path/to/file

注意< /path/to/file. 这就是你实际上告诉 read 从文件中读取的地方。

如果你想从输入流中读取,你可以while read像这样使用:

grep 'stuffInFile' /path/to/file |
while read -r oldrev newrev refname; do
  generate_email "$oldrev" "$newrev" "$refname"
done
于 2012-08-03T18:56:27.730 回答
1

我会说它不是挂起,而只是等待输入。

但请注意并确保generate_email不会从同一输入流中读取。

于 2012-08-03T18:56:17.993 回答