Maison > Questions et réponses > le corps du texte
需求是动态生成每天的日期,md5这个日期,然后curl到一个网址。
我第一次用shell,研究了下,初步代码如下:
#!/bin/bash
a=`date '+%Y-%m-%d'`
echo $a
code=$($a|md5sum|cut -d '' -f1)
echo $code
echo -n $a|md5sum
curl -v http://www.abc.com/report/?code=$code
问题1:md5sum赋值到变量和直接echo的值是不一致的
问题2:curl如何不打印请求的结果
黄舟2017-04-17 14:38:47
问题一:没遇到md5sum赋值到变量和直接echo的值是不一致的的情况
[root@localhost ~]# md5sum email.txt
6b15e74bf464475b4e18a9aa208b10d8 email.txt
[root@localhost ~]# cat email.txt
i@catscarlet.com
[root@localhost ~]# echo i@catscarlet.com|md5sum
6b15e74bf464475b4e18a9aa208b10d8 -
[root@localhost ~]#
[root@localhost ~]# a='i@catscarlet.com'
[root@localhost ~]# echo $a|md5sum
6b15e74bf464475b4e18a9aa208b10d8 -
你的代码至少在bash下是没法运行第四行的
[root@localhost ~]# bash -x test.sh
++ date +%Y-%m-%d
+ a=2016-03-30
+ echo 2016-03-30
2016-03-30
++ 2016-03-30
test.sh: line 4: 2016-03-30: command not found
++ cut -d '' -f1
++ md5sum
+ code='d41d8cd98f00b204e9800998ecf8427e -'
+ echo d41d8cd98f00b204e9800998ecf8427e -
d41d8cd98f00b204e9800998ecf8427e -
+ echo -n 2016-03-30
+ md5sum
a450f2d7030074e211755cdde0d41a57 -
[root@localhost ~]#
问题2:
curl -s 你的网址
-o /dev/null
问题1补充:
[root@localhost www]# date '+%Y-%m-%d'
2016-03-30
[root@localhost www]# date '+%Y-%m-%d'|md5sum
3a2f84ded4cc91e1276040cf0f27a681 -
[root@localhost www]# echo 2016-03-30 |md5sum
3a2f84ded4cc91e1276040cf0f27a681 -
你的脚本中
a=`date '+%Y-%m-%d'`
这段意味着将date的输出结果复制给a,现在a的值是2016-03-30
到下一行
code=`$a|md5sum`
其实就变成了
code=`2016-03-30|md5sum`
2016-03-30又不是什么命令,直接语法错误了。
懒一点你也可以这么写啊:
#!/bin/bash
a=`date '+%Y-%m-%d'`
code=`echo -n $a|md5sum`
echo $code
echo -n $a|md5sum
PS:echo 要加 -n ,不然会因为换行影响输出结果。我前面的代码就没加,md5变成3a2f84ded4cc91e1276040cf0f27a681了。2016-03-30正确的md5值应该是a450f2d7030074e211755cdde0d41a57。
黄舟2017-04-17 14:38:47
我需要把生成好的md5值赋到code,然后在其他地方引用code
代码整理下,以下输出md5还是不一致
#!/bin/bash
a=`date '+%Y-%m-%d'`
code=`$a|md5sum`
echo $code
echo -n $a|md5sum