所以我需要一个bash脚本来显示脚本运行的次数。我显然需要一个环境变量,但我很难搞清楚这一点。注意:这是在CGI文件中的Web服务器上,我基本上希望它计算"页面的数量"加载(计数器)。
感谢您的帮助!
答案 0 :(得分:2)
环境变量(就像CGI中的任何变量一样)不会真正削减它,因为一旦脚本终止,这些数据就会丢失。
存储计数的最常用方法是通过您的语言提供的调用来使用数据库(如Perl的DBI);您的网站提供商应提供一些此类方法。
我想你实际上可以执行一个客户端来连接和查询数据库,就像你从命令行那样。
缺乏这一点,并假设脚本具有对计算机上某个目录的写访问权限,您可以将其存储到文件中:
#!/bin/bash
file="magic_path/count.cnt"
if [ -e ${file} ]; then
count=$(cat ${file})
else
count=0
fi
((count++))
echo ${count} > ${file}
echo Loaded ${count} times
请记住,此类脚本可能容易出错,而您(或我)可能会忽略这些错误。值得注意的是@James_R_Ferguson的评论,在我的例子中指出了race condition。
答案 1 :(得分:2)
以下是几个选项:
echo -n . >> $LOGFILE
。然后你可以(在保证没有其他人访问它的同时)检查文件的大小以确定实际的数量。#2的一个例子:
TEMPDIR_LOCK=/path/to/fixed/lock/dir
mkdir $TEMPDIR_LOCK
while [[ $? != 0 ]] ; do
# sleep, usleep, or busy loop
mkdir $TEMPDIR_LOCK;
done
# read and increment count in some file
rm -f $TEMPDIR_LOCK