带有 pandoc 的 Bash 扩展错误定义函数



我在这里使用这里的建议来设置别名以使用命令将 markdown 转换为man样式输出,

alias mdless="pandoc -s -f markdown -t man !* | groff -T utf8 -man | less"

我不断收到错误:pandoc: !*: openFile: does not exist (No such file or directory)

但是如果我只是做pandoc -s -f markdown -t man README.md | groff -T utf8 -man | less命令词很好

这个 bash 扩展语法有问题吗?

该示例是tcsh别名,而不是bash别名。这就是为什么您需要将原始文件必须添加到您的=才能使其正常工作的原因。

问题是tcsh(显然)从历史扩展感叹号中删除了它在双引号字符串中看到的转义反斜杠:

tcsh$ echo "!*"
!*

bash(出于某种原因我从未理解)不会这样做:

bash$ echo "!*"
!*

我不确定您是否可以在bash中获得该别名的精确副本,因为我认为 bash 不会在别名扩展上进行历史记录扩展,因此您可以获得的最接近的是将文件作为参数的函数:

mdless() {
pandoc -s -f markdown -t man "$@" | groff -T utf8 -man | less
}

相关内容

  • 没有找到相关文章

最新更新