j519948746 发表于 2025-5-18 00:11:40

请教大佬这几行GO代码在火山服务器中要怎么写

最近在学习火山服务器,由于教程案例太少了 很多类都没有例程 只能跟着AI瞎琢磨,这是AI给的几行代码,请问在火山服务中如何表达。主要是实现在火山GO中进行CMD交互


package main

import (
    "os"
    "os/exec"
)

func main() {
    // 创建 cmd.exe 命令(Windows 默认路径在环境变量中)
    cmd := exec.Command("cmd.exe")
   
    // 将子进程的输入输出绑定到当前终端
    cmd.Stdin = os.Stdin
    cmd.Stdout = os.Stdout
    cmd.Stderr = os.Stderr
   
    // 启动进程并等待(保持 CMD 运行)
    if err := cmd.Run(); err != nil {
      panic(err)
    }
}

创世魂 发表于 2025-5-18 08:21:50

你如果想实现程序带参数启动,使用取命令行 ()方法就行。
如果你想实现在go程序中输入命令,执行特定的功能,用输入行 () 或者输入方法即可。

你上面给的代码,用不到吧。

j519948746 发表于 2025-5-18 08:58:30

本帖最后由 j519948746 于 2025-5-18 08:59 编辑

创世魂 发表于 2025-5-18 08:21
你如果想实现程序带参数启动,使用取命令行 ()方法就行。
如果你想实现在go程序中输入命令,执行特定的 ...
我想要使用火山代码进行CMD交互,或者在linux上进行SHELL交互,也就是在编译后的GO应用窗口中实时操作CMD/SHELL。并不是能不能用到的问题主要还是学习GO为主。目前网上的各种教程都是GIN/HTTP之类的火山GO基本库基本没人进行完整的介绍,很多函数方法在帮助页面点例程都是搜不到的。跟着AI看了下 火山GO和GO原生还是比较接近的 如果有大佬可以系统介绍下 应该上手很快
在linux上进行shell交互使用C仅需要system("/bin/sh");即可

创世魂 发表于 2025-5-18 10:16:59

j519948746 发表于 2025-5-18 08:58
我想要使用火山代码进行CMD交互,或者在linux上进行SHELL交互,也就是在编译后的GO应用窗口中实时操作CMD/ ...

你学习的这个方向也没有什么特别的作用。。还不如多看看火山自带的案例库里面的案例。



<火山程序 类型 = "通常" 版本 = 1 />

方法 启动方法 <公开 类型 = 整数>
{
    变量 执行 <参考 类型 = 命令执行类>
    执行 = 命令执行类.创建 ("cmd.exe", "")
    执行.标准输入 = 标准输入 ().读接口
    执行.标准输出 = 标准输出 ().写接口
    执行.错误输出 = 标准错误 ().写接口
    执行.执行 ()
    返回 (1)
}

j519948746 发表于 2025-5-18 10:32:00

本帖最后由 j519948746 于 2025-5-18 10:33 编辑

创世魂 发表于 2025-5-18 10:16
你学习的这个方向也没有什么特别的作用。。还不如多看看火山自带的案例库里面的案例。



是的确实没啥特别作用,主要是日常需要在linux上运行一些小工具,之前都是靠AI给出C代码交叉编译后实现的,现在发现火山可以做到ARM应用 就想把火山服务器当成一个中文ARM应用开发的工具 对其重点的服务器通信功能其实兴趣不是很大:D,所以想着重把基本库搞熟练了
话说回来了如果火山视窗给出的C++代码可以支持G++交叉编译的话就牛了

创世魂 发表于 2025-5-18 11:08:33

j519948746 发表于 2025-5-18 08:58
我想要使用火山代码进行CMD交互,或者在linux上进行SHELL交互,也就是在编译后的GO应用窗口中实时操作CMD/ ...

linux中可能是这么写的:

<火山程序 类型 = "通常" 版本 = 1 />

方法 启动方法 <公开 类型 = 整数>
{
    变量 执行 <参考 类型 = 命令执行类>
    执行 = 命令执行类.创建 ("bash", "")
    变量 输入管道 <参考 类型 = 写关闭接口>
    输入管道 = 执行.取标准输入管道 ()
    变量 输出管道 <参考 类型 = 读关闭接口>
    输出管道 = 执行.取标准输出管道 ()
    执行.启动 ()
    输入管道.写数据 (文本到字节数组 ("echo hello world\n"))
    输入管道.写数据 (文本到字节数组 ("exit\n"))
    变量 扫描器 <参考 类型 = 缓冲扫描器类>
    扫描器 = 缓冲扫描器类.创建 (输出管道)
    判断循环 (扫描器.扫描 ())
    {
      换行输出 (扫描器.取扫描结果文本 ())
    }
    执行.等待 ()
    返回 (1)
}

飞扬工作室 发表于 2025-5-18 11:28:45

火山服务器类库对go的标准库基本是一比一封装过来的,因此想把go代码转换到火山服务器也很简单,就是直接在火山类库中搜对应的go封装代码,然后使用所找到的火山类库命令即可.
页: [1]
查看完整版本: 请教大佬这几行GO代码在火山服务器中要怎么写