我在 OSX 中看到一个关于 gnu bash 的奇怪问题。 ulimit -f 的值正在被 bash 本身更改。小的可重现代码:
#!/usr/local/bin/bash
ulimit -f 1
echo "Value: $(ulimit -f)"
echo "---"
outstring=$(echo {1..10000})
echo "Value: $(ulimit -f)"
echo "Size = ${#outstring}"
echo "$outstring" > output_file
Output:
Value: 1
---
Value: unlimited
Size = 48893
wc -c output_file
48894 output_file
bash 的版本
/usr/local/bin/bash --version | head -n1
GNU bash, version 4.4.19(1)-release (x86_64-apple-darwin17.3.0)
观察结果:相同的代码在 ubuntu 中按预期工作,并且文件未写入。然而,在 OSX 下,我看到了这个奇怪的问题,其中 ulimit 在我下面发生了变化。是我遗漏了什么还是错误?