Mac OS X echo$(日期)在.bash_配置文件中给出了过时的日期
在终端中,如果我运行Mac OS X echo$(日期)在.bash_配置文件中给出了过时的日期,bash,shell,date,alias,.bash-profile,Bash,Shell,Date,Alias,.bash Profile,在终端中,如果我运行echo$(date),它将给出当前日期 但是,当我将命令作为别名放入.bash\u profile时 alias dt="echo $(date)" 它会给我一个过时的日期。也就是说,当我运行dt时,它总是给我相同的日期 有解决办法吗?谢谢 您需要引用它以防止扩展: alias dt="echo \$(date)" alias dt="echo \"\$(date)\"" ## (internally quoted) 或者只使用一个报价: alias dt='echo
echo$(date)
,它将给出当前日期
但是,当我将命令作为别名放入.bash\u profile时
alias dt="echo $(date)"
它会给我一个过时的日期。也就是说,当我运行dt
时,它总是给我相同的日期
有解决办法吗?谢谢 您需要引用它以防止扩展:
alias dt="echo \$(date)"
alias dt="echo \"\$(date)\"" ## (internally quoted)
或者只使用一个报价:
alias dt='echo $(date)'
alias dt='echo "$(date)"' ## (internally quoted)
最好使用一个函数:
dt() { echo "$(date)"; }
扩张来得比你预期的要快!为什么要把这个复杂化?只需做一个别名dt=date我需要使用$(date)信息来做一些额外的工作。类似于将当前时间生成为文件名:$(日期+%Y-%m-%d-%H%m%S”).png。但是为了简单地问一个关于stackoverflow的问题,我只使用$(日期)。谢谢你的及时回答!如果您能解释一下答案别名dt=“echo\$(date)”,那就太好了。反斜杠的作用是什么?为什么它会起作用?谢谢@JohnnySun我们实际上想要做的是给别名分配一个
echo$(date)
。如果我们不引用$(date)
,它将展开,而赋值将类似于echo Sun 22 Sep 20:46:35
,使其在每次运行dt时都成为一个常量。这与使用单报价版本相同。扩展不会发生在单引号中。