假设我有一个shell脚本,其中有一个语句,如:
a=$(find / -type f)
Run Code Online (Sandbox Code Playgroud)
这表示存在一定的文件列表,其文件路径将存储在变量"a"中.
它可以存储的最大限制或行数是多少.我怎么找到它?
假设基本 ubuntu 容器,kubernetes 中环境变量 (pod->container->Env) 允许的最大大小是多少?我无法找到相关文档。问题可能看起来很愚蠢,但是,我确实需要这些信息来使我的设计更加稳健。
要获取目录中的 X 个文件,我可以这样做:
$ ls -U | head -40000
Run Code Online (Sandbox Code Playgroud)
那么我该如何删除这 40,000 个文件呢?例如,类似:
$ "rm -rf" (ls -U | head -40000)
Run Code Online (Sandbox Code Playgroud) 我正在尝试加载和解析一个非常大的文本文件。虽然加载没有问题,但是有一些特定的行单行有 2908778 个字符。
这导致我的脚本出错。
在下面的脚本中,我删除了所有逻辑,直接阅读了一行。我还删除了所有有效行,并在一个文本文件中留下了很长的一行。运行时出现以下错误:
$ dowhiledebug.sh dump.txt
dowhiledebug.sh[6]: no space
Script Ended dump.txt
Run Code Online (Sandbox Code Playgroud)
实际脚本:
#!/bin/sh
filename=$1
count=1
if [ -f ${filename} ]; then
echo "after then"
while read line;
do
echo "$count"
count=$((count+1))
done < $filename
else
echo "Could not open file $filename"
fi
echo "Script Ended $filename"
Run Code Online (Sandbox Code Playgroud)
更新 (2013-01-17)
以下命令行可用于分配任意数量的内存,例如 1GB。内存区域被零填充。
</dev/zero head -c $((1024**3)) | tail
Run Code Online (Sandbox Code Playgroud)
然而,如何用随机数类似地填充给定数量的内存,例如 1GB?
与预期相反,以下两个变体不会导致工作内存的可选择分配大小,而是在终端中输出数百个随机字符:
</dev/random head -c $((1024**3)) | tail
Run Code Online (Sandbox Code Playgroud)
下面的看起来不像是一个解决方案,因为它操作数据(remove/0)并且只保存了几百个字符的变量,而不是1GB:
output=$(sudo head -c $((1024**3)) /dev/random | tr -d '\0' | tail)
Run Code Online (Sandbox Code Playgroud)
关于以下可能是一种解决方案的想法,但看起来 var 上只有几百个字符而不是 1GB:
output=""
while IFS= read -r -d '' substring; do
output+="$substring"
done < <(sudo head -c $((1024**3)) /dev/random | tail)
Run Code Online (Sandbox Code Playgroud) 我有一个环境变量,它将一串逗号分隔的变量转换为一个列表,以便在我的 Java 应用程序中使用。
它目前拥有十几个条目,如下所示:
1234,5678,9012
Run Code Online (Sandbox Code Playgroud)
它现在工作得很好,我已经用 100 个项目进行了测试,所以列表只有不到 500 个字符,并且它可以工作,但是如果我们需要转到 1000 个项目怎么办?
Java ENV 变量是否有最大大小?
我通过谷歌进行了相当彻底的搜索,但没有找到任何东西。
java intellij-idea environment-variables google-cloud-platform