填充文件的BASH问题'直到确定的大小

nco*_*hen 0 bash shell rhel

我写了一个脚本来填充文件以进行一些磁盘容量测试.你能告诉我为什么会有错误吗?

#!/bin/bash 
COUNTER=0;
FILE_SIZE_BITS=8589934592;
FILE_NAME="fill_me";
while [ $COUNTER -eq 0 ]; do
    echo "Dummy text to fill the file" >> "$FILE_NAME";
    SIZE='stat -c%s fill_me';
    if [[ $SIZE -gt $FILE_SIZE_BITS ]]; then
        let COUNTER=COUNTER+1;
    fi
done
Run Code Online (Sandbox Code Playgroud)

错误是:

-bash: [[: stat -c%s fill_me: division by 0 (error token is "fill_me")
Run Code Online (Sandbox Code Playgroud)

谢谢

Arn*_*anc 6

错误在这里:

SIZE='stat -c%s fill_me'
Run Code Online (Sandbox Code Playgroud)

改为:

SIZE=$(stat -c%s fill_me)
Run Code Online (Sandbox Code Playgroud)

这将SIZE设置为stat -c%s fill_me命令的输出.该$(...)语法是Command Substitution语法:

命令替换允许输出命令来替换命令名称.


顺便说一句,你可以用dd[手册]做同样的事情:

dd if=/dev/zero of=fill_me bs=1 count=8589934592
Run Code Online (Sandbox Code Playgroud)