Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/bash/17.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/shell/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Mac OS X echo$(日期)在.bash_配置文件中给出了过时的日期_Bash_Shell_Date_Alias_.bash Profile - Fatal编程技术网

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时都成为一个常量。这与使用单报价版本相同。扩展不会发生在单引号中。