我正在尝试通过编写糟糕的bash脚本执行代码遍历。
我遇到过这样的声明:
FOOBAR_NAME=`date +WeekNo.%W`
脚本中没有任何RHS变量的事先声明,在此声明之前的行。
所以我的问题是:
当FOOBAR_NAME在脚本中使用几行作为$ FOOBAR_NAME时,FOOBAR_NAME会解决什么问题?
答案 0 :(得分:3)
试试吧!
$date +WeekNo.%W
WeekNo.30
答案 1 :(得分:2)
RHS中没有引用任何变量。
反引号运算符(``) evaluates its contents and returns the output, similar (identical?) to
$(). It's a quick way to write an
eval`(用其他语言编写)。
在shell中输入date +WeekNo.%W
。打印的内容(在stdout中,折叠换行符)将存储在FOOBAR_NAME
中。
请注意,评估仅发生一次,即在分配期间。每次引用date
时都不会执行FOOBAR_NAME
。
答案 2 :(得分:0)
有关date
命令及其格式选项的说明,请参阅man date。 %W
是周数。
答案 3 :(得分:0)
这是使用date命令的格式字符串来创建包含周数的字符串。
反引号在它们之间执行命令;该行将结果分配给shell变量FOOBAR_NAME。
因此,如果您真的想知道它的作用,只需将文本剪切并粘贴到`之间并执行它。
答案 4 :(得分:0)
您可以在man date
中找到答案:如果您指定以+
开头的参数,则该参数的其余部分将被视为格式字符串。 Weekno.
部分按字面意思,%W
执行:
%W周的年数,周一为周的第一天(00..53)
答案 5 :(得分:0)
赋值运算符(“=
”)将其右侧部分的值赋给左侧部分的变量。这里的变量是FOOBAR_NAME
。
正确的部分是子壳。反引号(“```”)创建一个子shell。该子shell的输出将转到变量。
子shell改变了Unix date
命令。所有Unix命令的手册页都在Internet上。有a Unix man page for date。在这里,%W将被替换为周数。
因此变量的值为“WeekNo”加上星期数。