Bash 脚本逻辑偶尔会失败
Bash script logic fails occaisionally
此脚本检查文件大小。如果它在“最小大小”之下,它应该 运行 python 脚本。但是,如果它超过最小大小,脚本将不执行任何操作并退出。我遇到的问题是,有时当文件超过最小大小时,python 脚本仍然 运行s。我没看到什么?
#!/bin/bash
todays=$(date +%m-%d-%Y)
file_prefix=./csv/data_
file_suffix=.csv
file=${file_prefix}${todays}${file_suffix}
echo $file
minimumsize=64
actualsize=$(wc -c <"$file")
echo
if [ "$actualsize" -ge "$minimumsize" ]; then
echo size is over $minimumsize bytes
else
echo size is under $minimumsize bytes
#Script to run if filesize is under minimum size
/usr/bin/python3 /home/shannon/scripts/myscript.py
fi
可能是文件偶尔丢失了。如果 wc
或 stat
失败,您可以通过替换 0
大小来最轻松地解决这个问题。我一般推荐 stat
,因为它实际上并不读取文件,如果文件很大或者脚本没有读取文件的权限,这会很有用。
#!/bin/bash
file=./csv/data_$(date +%m-%d-%Y).csv
minimumsize=64
actualsize=$(stat -c%s $file 2>/dev/null || echo 0)
echo $file
echo
if [ $actualsize -ge $minimumsize ]; then
echo size is over $minimumsize bytes
else
echo size is under $minimumsize bytes
# Script to run if filesize is under minimum size
/usr/bin/python3 /home/shannon/scripts/myscript.py
fi
此脚本检查文件大小。如果它在“最小大小”之下,它应该 运行 python 脚本。但是,如果它超过最小大小,脚本将不执行任何操作并退出。我遇到的问题是,有时当文件超过最小大小时,python 脚本仍然 运行s。我没看到什么?
#!/bin/bash
todays=$(date +%m-%d-%Y)
file_prefix=./csv/data_
file_suffix=.csv
file=${file_prefix}${todays}${file_suffix}
echo $file
minimumsize=64
actualsize=$(wc -c <"$file")
echo
if [ "$actualsize" -ge "$minimumsize" ]; then
echo size is over $minimumsize bytes
else
echo size is under $minimumsize bytes
#Script to run if filesize is under minimum size
/usr/bin/python3 /home/shannon/scripts/myscript.py
fi
可能是文件偶尔丢失了。如果 wc
或 stat
失败,您可以通过替换 0
大小来最轻松地解决这个问题。我一般推荐 stat
,因为它实际上并不读取文件,如果文件很大或者脚本没有读取文件的权限,这会很有用。
#!/bin/bash
file=./csv/data_$(date +%m-%d-%Y).csv
minimumsize=64
actualsize=$(stat -c%s $file 2>/dev/null || echo 0)
echo $file
echo
if [ $actualsize -ge $minimumsize ]; then
echo size is over $minimumsize bytes
else
echo size is under $minimumsize bytes
# Script to run if filesize is under minimum size
/usr/bin/python3 /home/shannon/scripts/myscript.py
fi