我正在尝试创建一个bash别名,它将在每次调用别名时打印当前的UNIX时间戳。在我的bash简介中有以下几点:
alias unix="echo "$(date +%s)""但是,当前的unix时间戳似乎是在bash配置文件来源之后立即存储的,而且每次调用别名时都不会更改。
例如,如果我隔10秒钟调用unix别名3次,输出总是相同的。如何创建别名,以便在调用别名时计算unix时间戳。这个是可能的吗?
发布于 2014-06-16 03:44:48
使用单引号防止立即扩展。
alias unix='echo $(date +%s)'更新:虽然我很高兴能够解释单引号和双引号之间的不同扩展行为,但也请参阅Robby Cornelissen的另一个答案,以获得更有效的结果。echo在这里是不必要的,因为它只输出date本身已经输出的内容。因此,date不需要在子subshell中运行。
发布于 2014-06-16 03:43:44
$ alias unix="date +%s"
$ touch myfile.$(unix)
$ touch myfile.$(unix)
$ ls -l myfile*
-rw-r--r-- 1 rbednark wheel 0 Apr 11 21:46 myfile.1460436366
-rw-r--r-- 1 rbednark wheel 0 Apr 11 21:46 myfile.1460436368https://stackoverflow.com/questions/24236362
复制相似问题