奇怪的Bash脚本错误
发布时间:2016-10-23 09:19:45 所属栏目:Linux 来源:网络整理
导读:由于工作需要,写了一个脚本,该脚本的功能是实现: 有两个.txt文件,里面存放了一些域名,然后从这两个.txt文件里面,随机取出一个域名,写入到shiting.htm和x
|
副标题[/!--empirenews.page--] 由于工作需要,写了一个脚本,该脚本的功能是实现: 有两个.txt文件,里面存放了一些域名,然后从这两个.txt文件里面,随机取出一个域名,写入到shiting.htm和xiazai.htm文件里面。 脚本写好了,测了语法,没问题,在虚拟机里面也测试通过的,没问题。可是一拷贝到生产环境中,就出了大问题。纠结了我两天,现在终于得到了解决,现在总结以下,以免以后再犯同样的错误。 脚本如下:
#!/bin/bash
# author: honway.liu
# date: 2012-06-01
# define location file
yyxz=/data/cdn/xiazai.txt
yyst=/data/cdn/shiting.txt
#xiazai=/data/api/xiazai.htm
#shiting=/data/api/shiting.htm
xiazai=/tmp/xiazai.htm
shiting=/tmp/shiting.htm
log=/tmp
# xiazai & shiting file line number
xznm=$(wc -l $yyxz|awk '{print $1}')
stnm=$(wc -l $yyst|awk '{print $1}')
# random for xiazai & shiting
down=$[$RANDOM%$xznm+1]
listen=$[$RANDOM%$stnm+1]
# get xiazai & shiting domain name
xzym=$(sed -n ${down}p $yyxz)
stym=$(sed -n ${listen}p $yyst)
# write domain name into htm files.
echo -n $xzym > $xiazai
echo -n $stym > $shiting
# out put logs
echo "The $xzym at `date +'%F %T'` be provided" >>/$log/xiazai_domain.log
echo "The $stym at `date +'%F %T'` be provided" >>/$log/shiting_domain.log
exit 0
本栏目更多精彩内容:http://www.bianceng.cn/OS/Linux/ 语法检测是没问题的,但是执行的时候,就乱七八糟的。
上面最后一个错是因为exit0没有空格。看sed的结果是OK的,但是变量的内容就乱七八糟,让人很头痛。看下输出的结果
(编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |




