奇怪的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的,但是变量的内容就乱七八糟,让人很头痛。看下输出的结果 (编辑:佛山站长网) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |