我正在编写一个可以自动使用MySQL的脚本。我不明白如何实现这个:
[^\^#]
MYSQL_RESULT=mysql -u LOGIN -pPASS -D "TABLE_NAME" -e "SQL request";
for i in $MYSQL_RESULT; do
if [ $i -le 100 ]
then r_kills = '100';
elif [ $i -le 500 ]
then r_kills = '100';
elif [ $i -le 1000 ]
then r_kills = '500';
echo $r_kills;
fi
done;
答案 0 :(得分:0)
这是一项无效的作业。在shell中等号前面或后面可能没有空格 - 与我所知道的大多数编程语言相反:
if [ $i -le 100 ]
then r_kills = '100';
if [ $i -le 100 ]
then r_kills=100;
请注意,无法区分shell中的数字和文本。单引号和双引号仅用于屏蔽特殊字符,包括空格。
消息
sh: 21: cron.rankme.sh: r_kills: not found
误导我认为,你使用了一些不在路径中的东西,但实际上,分词器已经决定,r_kills = '100'
是一个程序调用r_kills有两个参数,'='和'100' 。
第一行 - 不太了解mysql,
MYSQL_RESULT=mysql -u LOGIN -pPASS -D "TABLE_NAME" -e "SQL request";
最有可能是
MYSQL_RESULT=$(mysql -u LOGIN -pPASS -D "TABLE_NAME" -e "SQL request";)
或
MYSQL_RESULT=($(mysql -u LOGIN -pPASS -D "TABLE_NAME" -e "SQL request";))
创建数组,因为您尝试迭代变量。