如何检查文件';s size大于Bash中的某个值
好的,这里的初学者:如何检查文件';s size大于Bash中的某个值,bash,shell,Bash,Shell,好的,这里的初学者: 我如何实现以下目标: 我需要检查文件的大小 然后使用if条件和相应的条件语句将此文件大小与固定数字进行比较 到目前为止,我有以下几点: #!/bin/bash # File to consider FILENAME=./testfile.txt # MAXSIZE is 5 MB MAXSIZE = 500000 # Get file size FILESIZE=$(stat -c%s "$FILENAME") # Checkpoint echo "Size of
我如何实现以下目标:
- 我需要检查文件的大小
- 然后使用if条件和相应的条件语句将此文件大小与固定数字进行比较
#!/bin/bash
# File to consider
FILENAME=./testfile.txt
# MAXSIZE is 5 MB
MAXSIZE = 500000
# Get file size
FILESIZE=$(stat -c%s "$FILENAME")
# Checkpoint
echo "Size of $FILENAME = $FILESIZE bytes."
# The following doesn't work
if [ (( $FILESIZE > MAXSIZE)) ]; then
echo "nope"
else
echo "fine"
fi
通过这段代码,我可以在变量$FILESIZE中获取文件名,但无法将其与固定整数值进行比较
编辑
两个句法问题
bash
中的变量定义不带空格,它应该是MAXSIZE=500000
,不带空格if[($FILESIZE>MAXSIZE))代码>。您可以单独使用bash
自己的算术运算符,将[
运算符跳过为if((FILESIZE>MAXSIZE));然后
作为一般编码实践,在
bash
中使用小写用户定义变量,以避免将它们与shell为不同目的解释的特殊环境变量混淆(例如$HOME
,$shell
)if[($FILESIZE>MAXSIZE));
if((FILESIZE>MAXSIZE));
算术运算符可以用作条件表达式。(您不需要(…)
中的$
)
#!/bin/bash
filename=./testfile.txt
maxsize=5
filesize=$(stat -c%s "$filename")
echo "Size of $filename = $filesize bytes."
if (( filesize > maxsize )); then
echo "nope"
else
echo "fine"
fi