.bashrc 中为特定日期命令分配 bash 别名

.bashrc 中为特定日期命令分配 bash 别名

我正在尝试设置一个别名来显示特定日期命令的值。当我设置别名时,我得到了正确的值,但也得到了“未找到命令...”有没有办法设置这个而不出现错误?

概括:

我正在尝试获取当前日期的上个月最后一天。今天的日期是:20210221

我正在使用以下命令来获取我想要的日期:

  
日期 -d "$(日期 +%Y-%m-01) -1 天" +%Y%m%d
20210131

结果:

我在 .bashrc 中为此设置了别名

[root@centos_8_1 ~]# 别名 | grep 日期
别名 test_date='$(date -d "$(date +%Y-%m-01) -1 天" +%Y%m%d)'

当我尝试调用时,我得到了正确的值,但也得到了“未找到命令......

[root@centos_8_1 ~]# 测试日期
bash:20210131:未找到命令...

问题:

我是否遗漏了语法方面的某些内容?

我如何为该日期设置别名?

未找到的命令是什么?

第一次发帖,谢谢帮助。

答案1

别名只是一种将命令开头的某个字符串替换为其他任意字符串的方法。您的情况是, 被test_date替换为$(date -d "$(date +%Y-%m-01) -1 day" +%Y%m%d),它首先运行date命令,然后尝试运行结果命令替换,从而“执行”日期字符串。

解决方案是简单地删除$()别名字符串周围。

相关内容