我必须创建一个Shell脚本,其中一个参数将是dd/mm/yyyy格式的日期.我的问题是,如何检查作为参数传递的日期是否真的遵循此日期格式?我尝试使用grep命令如下:
if echo "$1" | grep -q '^[0-3][0-9]/[0-1][0-9]/[0-9]\{4\}$'
Run Code Online (Sandbox Code Playgroud)
但它没有给出正确的格式,因为例如日期可以是33,34,(...),这不是真正正确的格式.任何人都知道可以真正检查过去的日期是否真的遵循格式dd/mm/yyyy?
我在尝试从外部文件中获取变量值时遇到问题.我的问题是:是否有可能从for中读取文件中的值然后使用cut命令我可以在=之前得到信息,这将是变量之后的=将是值.这是我在下面尝试但不允许的:
for i in `cat $1`
do
`echo $i | cut -d= -f1`=`echo $i | cut -d= -f2`
done
Run Code Online (Sandbox Code Playgroud)
$ 1是作为参数传递的文件,它有3行,其中行有一个变量,格式值为variable = value.有没有办法我可以这样做,而不是需要获取变量名称,然后另一个条件为这些变量的值?或者即使我的代码是正确的,但只需要改变一些东西.