Go 命令行写入到剪切板

30 min read

作为 AI 语言模型,我没有直接的物理接口,因此不能直接操作剪贴板。但是,我可以告诉你如何在 Go 语言中将文本写入剪贴板。你可以使用相应的系统调用或第三方库来实现此功能,以下是一些可能有用的示例:

在 Windows 中

你可以使用 github.com/atotto/clipboard 库来操作剪贴板。使用以下命令安装此库:

go get github.com/atotto/clipboard

然后,可以使用以下代码将文本写入剪贴板:

package main

import (
    "github.com/atotto/clipboard"
)

func main() {
    text := "Hello, world!"
    err := clipboard.WriteAll(text)
    if err != nil {
        panic(err)
    }
}

在 macOS 中

对于 macOS,你可以使用 github.com/zerodhatech/macdriver 库来操作剪贴板。使用以下命令安装此库:

go get github.com/zerodhatech/macdriver

然后,可以使用以下代码将文本写入剪贴板:

package main

import (
    "github.com/zerodhatech/macdriver/cocoa"
)

func main() {
    text := "Hello, world!"
    pb := cocoa.NSPasteboard_Get(cocoa.NSGeneralPboard())
    pb.SetString(text)
}

在 Linux 中

对于 Linux,你可以使用 xclip 命令行实用程序来操作剪贴板。你需要首先安装此实用程序,然后在 Go 代码中使用 os/exec 包运行命令。以下是一个示例代码:

package main

import (
    "os/exec"
)

func main() {
    text := "Hello, world!"
    cmd := exec.Command("xclip", "-selection", "clipboard")
    cmd.Stdin = strings.NewReader(text)
    err := cmd.Run()
    if err != nil {
        panic(err)
    }
}

请注意,上述代码仅适用于使用 X Window 系统的 Linux 系统。对于其他类型的 Linux 系统,你可能需要使用其他实用程序。