日安! 日安! 日安! 日安!
我正在写一个相对简单的 BASH 脚本, 执行 SVN UP 命令, 捕捉控制台输出, 然后在文本上做一些邮件处理 。
例如:
#!/bin/bash
# A script to alter SVN logs a bit
# Update and get output
echo "Waiting for update command to complete..."
TEST_TEXT=$(svn up --set-depth infinity)
echo "Done"
# Count number of lines in output and report it
NUM_LINES=$(echo $TEST_TEXT | grep -c .* )
echo "Number of lines in output log: $NUM_LINES"
# Print out only lines containing Makefile
echo $TEST_TEXT | grep Makefile
这和预期的一样有效(如上面的代码所评论的那样 ), 但我很担心如果我在非常大的仓库里运行它会发生什么。 是否对BASH 最大缓冲尺寸有限制, 用于保持控制台命令的输出?
我曾经寻找过类似的问题, 但与我正在寻找的东西没有什么相似之处。 我读过某些脚本在大型中间缓冲时需要使用 < code> alxags code > 。 我想知道这里在捕捉控制台输出时是否适用类似的东西 。
示例 :
# Might fail if we have a LOT of results
find -iname *.cpp | rm
# Shouldn t fail, regardless of number of results
find -iname *.cpp | xargs rm
谢谢