我想用一种特定的格式从一天前开始计算一周前的日期并将其放入变量中.例如,今天是Nov 21st. 2014,我想打印出来:上周是2014-11-14.
我知道我们可以使用Date::Calc模块,但我不知道如何.
我们可以bash -n script.sh用来验证shell脚本的语法.但是,当我尝试测试此函数时,我注意到此选项无法找到所有语法错误.
例如:
root@ubuntu:~/testenv# cat test
#!/bin/bash
SEND=1
if [ "$SEND" -eq 0 ]
echo no
fi
Run Code Online (Sandbox Code Playgroud)
现在,让我们测试脚本:
root@ubuntu:~/testenv# bash -n test
test: line 5: syntax error near unexpected token `fi'
test: line 5: `fi'
Run Code Online (Sandbox Code Playgroud)
它工作正常.但是,如果我只删除其中一个括号:
root@ubuntu:~/testenv# cat test
#!/bin/bash
SEND=1
if [ "$SEND" -eq 0
then
echo no
fi
root@ubuntu:~/testenv# bash -n test
root@ubuntu:~/testenv#
Run Code Online (Sandbox Code Playgroud)
没啥事儿!
我还检查了bash的手册页,它描述了"-n"是:
-n Read commands but do not execute them. This may be used to check a
shell script for syntax errors. …Run Code Online (Sandbox Code Playgroud) 我在Perl学习中遇到了一个问题.
$a = "Z9"; print ++$a;
Run Code Online (Sandbox Code Playgroud)
打印出来AA0.这很容易理解,增加1的9得到10,Z增加1获得AA.就像99 + 1.但是,如果我翻过Z和9,会发生什么:
$a = "9Z"; print ++$a;
Run Code Online (Sandbox Code Playgroud)
这会得到10.为什么字母Z消失了?它去了哪里?
此致,尼尔