在zsh别名中使用Heredoc

布赖恩·哈米尔(Brian Hamill)

我想在zsh别名中使用heredoc ,例如:

alias runthing="cd ~; date << HERE
date
HERE"

但是,每次我运行此别名时,shell都会像未终止heredoc一样运行,并显示以下内容:

➜  ~ runthing
heredoc>

在此heredoc>输入命令即可完成命令,尽管我不想这样做,因此也不想使用别名。我正在使用oh-my-zsh,如果有什么不同。

如何在zsh别名中正确使用heredoc?

斯蒂芬·查泽拉斯(Stephane Chazelas)

这里的文档定界符必须是别名中的定界行zsh(当您按回车键时确实添加了该定界符,它看起来确实像个错误),因此:

alias runthing='cd; date << HERE
date
HERE
'

在这里,使用别名是错误的。例如考虑:

echo foo || runthing

因为alias这只是代码文本替换的一种形式(别名在所有csh功能之前,但csh没有功能),所以变为

echo foo || cd; date...

date即使echo成功,也将继续运行

您最好在这里使用一个函数:

runthing() {
  cd && date << EOF
date
EOF
}

(当然,给date一个Heredoc来date读没有它的stdin ,这是没有意义的,我只是假设,这只是为了示例)。

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

防止zsh在CWD中使用别名(提示)

来自分类Dev

在heredoc中使用变量

来自分类Dev

当我在oh-my-zsh中使用zsh时,为什么必须给bower加上别名

来自分类Dev

可以在Bash中使用,但不能在ZSH中使用?....别名ls ='ls -lh'

来自分类Dev

在PHP中使用HTML的Heredoc

来自分类Dev

bash / zsh别名:我可以抓取参数并在subshell中使用吗?

来自分类Dev

如何在oh-my-zsh中使用自动完成别名?

来自分类Dev

在功能中使用别名?

来自分类Dev

zsh别名“ ...”

来自分类Dev

如何在heredoc中使用安装命令

来自分类Dev

在heredoc中使用@错误控制器

来自分类Dev

在Makefile中使用Heredoc。是否可以?

来自分类Dev

我该如何使用!在zsh别名中

来自分类Dev

在ZSH中使用数组

来自分类Dev

Bash:在变量中使用别名

来自分类Dev

在距离计算中使用别名

来自分类Dev

在SQL请求中使用别名

来自分类Dev

在别名中使用参数变量

来自分类Dev

在if语句中使用别名

来自分类Dev

Bash:在变量中使用别名

来自分类Dev

在SQL请求中使用别名

来自分类Dev

在别名中使用dir var?

来自分类Dev

在OR子句SQL中使用别名

来自分类Dev

在查找中使用zsh函数?

来自分类Dev

在通过Heredoc传递的python脚本中使用管道内容

来自分类Dev

在bash中使用嵌套函数定义和heredoc导出函数

来自分类Dev

如何在HEREDOC SQL查询中使用PHP变量?

来自分类Dev

在通过Heredoc传递的python脚本中使用管道内容

来自分类Dev

在 MATLAB 上使用 zsh 通过别名运行命令行