我正在编写一个脚本,每周一次将df -g的输出写入文本文件。
这是我的脚本,我认为它应该可以工作,但每当我尝试通过键入./check_space.sh以root身份运行它时,我会收到以下错误:
./check_space.sh:第13行:意外令牌done'
./check_space.sh: line 13:
附近的语法错误'
#!/bin/bash
#this script will run every week to grab a df -g and output it to a file.
#times to sleep
#10080 = 1 week
#date command
NOW=$(date +"%m.%d.%y")
while true, do
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log
#sleep 10080
done
最初我想在屏幕会话中运行这个脚本,这就是为什么Sleep在那里,但我很快就决定每周一次以cron运行它会更好。
答案 0 :(得分:1)
问题是由true
之后的逗号引起的。正确的语法是分号:while true; do
。但是你首先不需要while循环。如下所示就足够了:
#!/bin/bash
NOW=$(date +"%m.%d.%y")
df -g > /sds/app/force/custom/dumplogs/harddisk/$NOW.log
我还建议您使用%Y-%m-%d
作为日期格式,以便更容易按日期排序。