我在论坛上看到这个命令作为注册问题:
"date -u +%V$(uname)|sha256sum|sed 's/\W//g'"
Run Code Online (Sandbox Code Playgroud)
我认为这取决于我的 PC 的时间,它每秒都在变化,但每次尝试时输出仍然相同。那么,有人可以解释一下这个命令是如何工作的吗?
让我们把它分解成它的组成部分:
date部分date -u:如 中所述man date,该-u标志使其打印协调世界时
+%V: data 命令采用格式参数,该参数在+. 例如:
$ date +%m/%d/%y
05/04/14
Run Code Online (Sandbox Code Playgroud)
查看man date它可以生成的所有格式的列表。该%V方式:
%V ISO 周数,星期一作为一周的第一天 (01..53)
所以,本周它将返回:
$ date +%V
18
Run Code Online (Sandbox Code Playgroud)
而下周将返回19。
$(uname):这将简单地打印uname应该Linux在 Linux 系统上的命令的结果。
因此,将所有这些放在一起,该date命令将打印WeekNumberLinux:
$ date -u +%V$(uname)
18Linux
Run Code Online (Sandbox Code Playgroud)
sha256sum部分sha256sum简单地接受一个输入字符串并对其应用哈希函数。这会产生一个长字符串,对于给定的输入是唯一的:
$ date -u +%V$(uname) | sha256sum
9a93b71d5b2841e649195bc81f8e38600860a040bc368cdbd0cde346b73248a1 -
Run Code Online (Sandbox Code Playgroud)
sed部分该命令sed使用替换运算符 ( s/pattern/replacment/),它将替换pattern为replacement。在这种情况下,模式是\Wwhich 意思是“所有非单词字符”,意思是任何不是[A-Za-z0-9_],不是字母,不是数字,也不是下划线。这用于删除尾随空格并-从sha256sum.
因此,该命令是一种确保您不是机器人的简单方法。由于date正在打印本周,您的输出将始终相同,直到下周它会发生变化。
| 归档时间: |
|
| 查看次数: |
1703 次 |
| 最近记录: |