zsh:重定向到临时文件的全局别名

时间:2015-07-13 09:02:24

标签: alias zsh

我想在zsh中添加一个全局的aliash,它看起来像这样:

alias -g t='> tmp-$(date +%Y%m%d-%h%m%s).txt'

它应该做的是在当前目录中创建一个新的带时间戳的临时文件,并将输出重定向到该文件。但是,在获取zsh时,将对文件名进行评估,而不是调用别名。

我想我需要的是某种懒惰的评价。有没有办法实现这个目标?

1 个答案:

答案 0 :(得分:2)

好的,我想出了办法。比我想要的更多参与:

function redirect-to-tmp() {
  TMPFILE="./tmp-$(date +%y%m%d-%H%M%S)"
  cat >>! $TMPFILE
  echo "Redirected to $TMPFILE"
}

function redirect-to-tee() {
  TMPFILE="./tmp-$(date +%y%m%d-%H%M%S)"
  tee -a $TMPFILE
  echo "Redirected to $TMPFILE"
}

alias -g t='| redirect-to-tmp'
alias -g T='| redirect-to-tee'

如果其他人有更好的答案,请告诉我。