如何在 bash 中更改有关 'date' 命令的命令和选项?
How can I change command and option about 'date' command in bash?
我想将此 bash 命令转换为 shell 脚本。
BASH
输入:
date --date="Wed Aug 25 22:37:44 +0900 2021" +"%s"
输出:
1629898664
SHELL
tmp.sh:
function time(a, b, c, d, e) { return date --date="a b c d +0900 e" +"%s" }
{print time(, , , , }
时间线:
Wed Aug 25 22:37:44 2021
命令:
awk -f tmp.sh timeline
输出:
awk: tmp.sh:1: function cvtTime(w) { return date --date="Thu May 14 23:40:52 +0900 2020" +"%s" }
awk: tmp.sh:1: ^ syntax error
时间轴文件有多行怎么办?喜欢:
Wed Aug 25 22:37:44 2021 JACK
Wed Aug 26 22:37:44 2021 EMILY
Wed Aug 27 22:37:44 2021 SAM
我试过了:
#!/bin/bash
while read -r line; do
date --date=" +0900 " +"%s"
done
想要:
1629898664 JACK
1629985064 EMILY
1630071464 SAM
但它不起作用:(
您似乎想要一个 shell 脚本,该脚本使用五个命令行参数调用:
- 工作日(三字母格式)
- 一个月(三个字母的格式)
- 每月第几天
- 时间表达式 (HH:MM:SS)
- 一年(四位数)
(注意1.是多余的,由2.、3.、5.隐含)
因此,一个有点小的 shell 脚本看起来……像这样:
#!/bin/bash
date --date=" +0900 " +"%s"
当然,这可以大大改进,例如,通过为传递的参数添加健全性检查。
如果您想将日期信息存储在一个文件中,以便您可以将单个 filename
参数传递给脚本(允许多行这样的行),可以使用以下变体:
#!/bin/bash
while read -a i; do
echo $(date --date="${i[0]} ${i[1]} ${i[2]} ${i[3]} +0900 ${i[4]}" +"%s") ${i[5]}
done <
但是请注意,此版本需要在每一行的日期信息之后添加一个额外的 name 参数。
无论如何,这里不需要awk
。
我想将此 bash 命令转换为 shell 脚本。
BASH
输入:
date --date="Wed Aug 25 22:37:44 +0900 2021" +"%s"
输出:
1629898664
SHELL
tmp.sh:
function time(a, b, c, d, e) { return date --date="a b c d +0900 e" +"%s" }
{print time(, , , , }
时间线:
Wed Aug 25 22:37:44 2021
命令:
awk -f tmp.sh timeline
输出:
awk: tmp.sh:1: function cvtTime(w) { return date --date="Thu May 14 23:40:52 +0900 2020" +"%s" }
awk: tmp.sh:1: ^ syntax error
时间轴文件有多行怎么办?喜欢:
Wed Aug 25 22:37:44 2021 JACK
Wed Aug 26 22:37:44 2021 EMILY
Wed Aug 27 22:37:44 2021 SAM
我试过了:
#!/bin/bash
while read -r line; do
date --date=" +0900 " +"%s"
done
想要:
1629898664 JACK
1629985064 EMILY
1630071464 SAM
但它不起作用:(
您似乎想要一个 shell 脚本,该脚本使用五个命令行参数调用:
- 工作日(三字母格式)
- 一个月(三个字母的格式)
- 每月第几天
- 时间表达式 (HH:MM:SS)
- 一年(四位数)
(注意1.是多余的,由2.、3.、5.隐含)
因此,一个有点小的 shell 脚本看起来……像这样:
#!/bin/bash
date --date=" +0900 " +"%s"
当然,这可以大大改进,例如,通过为传递的参数添加健全性检查。
如果您想将日期信息存储在一个文件中,以便您可以将单个 filename
参数传递给脚本(允许多行这样的行),可以使用以下变体:
#!/bin/bash
while read -a i; do
echo $(date --date="${i[0]} ${i[1]} ${i[2]} ${i[3]} +0900 ${i[4]}" +"%s") ${i[5]}
done <
但是请注意,此版本需要在每一行的日期信息之后添加一个额外的 name 参数。
无论如何,这里不需要awk
。