gpt4 book ai didi

macos - 如何在 bash 函数中使用 pbcopy?可以脚本化吗?

转载 作者:行者123 更新时间:2023-11-29 08:50:21 25 4
gpt4 key购买 nike

我经常发现自己使用以下命令将历史命令复制到剪贴板:

回显 !123 | pb复制

这在终端上运行良好。假设 !123 = cd ..,它看起来像这样:

$ echo !123 | pbcopy
echo cd .. | pbcopy
//result: `cd ..` is in the clipboard

为了让生活更轻松,我将这个 bash 函数添加到我的 .bashrc 中:

function pb() {
echo $1 | pbcopy
}

理想情况下,将调用此命令,如下所示:pb !!。但是,这不起作用。这是发生的事情:

$ pb !123
pb cd .. | pbcopy
//result: `!!` is in the clipboard

无论我调用什么历史命令,它总是将 !! 返回到剪贴板。我也试过做一个别名,但有同样的问题:

别名 pb='echo !! | pbcopy'

有什么建议吗?

最佳答案

你的功能有点不对。它应该使用 $@ 而不是 $1

就是

function pb() {
echo "$@" | pbcopy
}

结果:

samveen@minime:/tmp $ function pb () { echo "$@" | pbcopy ; }
samveen@minime:/tmp $ pb !2030
pb file `which bzcat`
//result: `file /bin/bzcat` is in the clipboard
samveen@minime:/tmp $

为了解释为什么 alias 不起作用,!! 在单引号内,如果 !! 不是,则会发生历史记录替换'引用。由于它是命令历史记录的替代品,根据定义是交互式的,因此将其保存到变量和别名中非常棘手。

关于macos - 如何在 bash 函数中使用 pbcopy?可以脚本化吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17079749/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com