linux - Bash 别名在文件名中创建具有当前时间戳的文件

标签 linux bash shell unix

我正在尝试创建一个 bash 别名,它会在每次调用别名时打印当前的 UNIX 时间戳。我的 bash 配置文件中有以下内容:

alias unix="echo "$(date +%s)""

但是,似乎当前的 unix 时间戳是在获取 bash 配置文件后立即存储的,并且每次调用别名时都不会更改。

例如,如果我每隔 10 秒调用 unix 别名三次,输出总是相同的。我如何创建一个别名来评估调用别名时的 unix 时间戳。这可能吗?

最佳答案

使用单引号防止立即展开。

alias unix='echo $(date +%s)'

更新:虽然我很高兴能够解释单引号和双引号之间的不同扩展行为,但也请参阅 Robby Cornelissen 的其他答案,以获得获得相同结果的更有效方法。 echo 在这里是不必要的,因为它只输出 date 本身已经输出的内容。因此,date 不需要在子 shell 中运行。

关于linux - Bash 别名在文件名中创建具有当前时间戳的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24236362/

相关文章:

linux - GDB:linux 内置模块中的断点失败

linux - 如何复制文件及其路径下的所有目录

bash -/etc/init.d/centos 和 debian 中的函数和操作

linux - grep - 打印包含 'cat' 作为第二个单词的所有行

shell - 远程创建用户名和设置密码

linux - 使用 Bash 自动终止匹配进程

c - 既然 'fread'是buffred的,有没有必要把数据fread到内存中再使用呢?

arrays - 为什么 AWK 不将此数组索引视为数字,除非我使用 int()?

bash - 错误的 stdio 转发规范 '%h:%p' '

linux - Bash 从给定的 PID 读取标准输入