递归火山软件开发平台

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
热搜: 火山 源码 类库
查看: 669|回复: 6
打印 上一主题 下一主题

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

[复制链接]

19

主题

61

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
跳转到指定楼层
楼主
发表于 2025-5-18 00:11:40 | 只看该作者 回帖奖励 |倒序浏览 |阅读模式
最近在学习火山服务器,由于教程案例太少了 很多类都没有例程 只能跟着AI瞎琢磨,这是AI给的几行代码,请问在火山服务中如何表达。主要是实现在火山GO中进行CMD交互


  1. package main

  2. import (
  3.     "os"
  4.     "os/exec"
  5. )

  6. func main() {
  7.     // 创建 cmd.exe 命令(Windows 默认路径在环境变量中)
  8.     cmd := exec.Command("cmd.exe")
  9.    
  10.     // 将子进程的输入输出绑定到当前终端
  11.     cmd.Stdin = os.Stdin
  12.     cmd.Stdout = os.Stdout
  13.     cmd.Stderr = os.Stderr
  14.    
  15.     // 启动进程并等待(保持 CMD 运行)
  16.     if err := cmd.Run(); err != nil {
  17.         panic(err)
  18.     }
  19. }
复制代码

回复

使用道具 举报

458

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

积分
43810
沙发
发表于 2025-5-18 08:21:50 | 只看该作者
你如果想实现程序带参数启动,使用  取命令行 ()  方法就行。
如果你想实现在go程序中输入命令,执行特定的功能,用  输入行 () 或者  输入  方法即可。

你上面给的代码,用不到吧。
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

19

主题

61

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
板凳
 楼主| 发表于 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");即可
回复

使用道具 举报

458

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

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

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



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

  2. 方法 启动方法 <公开 类型 = 整数>
  3. {
  4.     变量 执行 <参考 类型 = 命令执行类>
  5.     执行 = 命令执行类.创建 ("cmd.exe", "")
  6.     执行.标准输入 = 标准输入 ().读接口
  7.     执行.标准输出 = 标准输出 ().写接口
  8.     执行.错误输出 = 标准错误 ().写接口
  9.     执行.执行 ()
  10.     返回 (1)
  11. }
复制代码
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

19

主题

61

帖子

435

积分

中级会员

Rank: 3Rank: 3

积分
435
5#
 楼主| 发表于 2025-5-18 10:32:00 | 只看该作者
本帖最后由 j519948746 于 2025-5-18 10:33 编辑
创世魂 发表于 2025-5-18 10:16
你学习的这个方向也没有什么特别的作用。。还不如多看看火山自带的案例库里面的案例。

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

使用道具 举报

458

主题

1万

帖子

4万

积分

超级版主

Rank: 8Rank: 8

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

linux中可能是这么写的:

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

  2. 方法 启动方法 <公开 类型 = 整数>
  3. {
  4.     变量 执行 <参考 类型 = 命令执行类>
  5.     执行 = 命令执行类.创建 ("bash", "")
  6.     变量 输入管道 <参考 类型 = 写关闭接口>
  7.     输入管道 = 执行.取标准输入管道 ()
  8.     变量 输出管道 <参考 类型 = 读关闭接口>
  9.     输出管道 = 执行.取标准输出管道 ()
  10.     执行.启动 ()
  11.     输入管道.写数据 (文本到字节数组 ("echo hello world\n"))
  12.     输入管道.写数据 (文本到字节数组 ("exit\n"))
  13.     变量 扫描器 <参考 类型 = 缓冲扫描器类>
  14.     扫描器 = 缓冲扫描器类.创建 (输出管道)
  15.     判断循环 (扫描器.扫描 ())
  16.     {
  17.         换行输出 (扫描器.取扫描结果文本 ())
  18.     }
  19.     执行.等待 ()
  20.     返回 (1)
  21. }
复制代码
安卓无障碍实战课:点击查看
交流群:641526939
回复

使用道具 举报

66

主题

1858

帖子

9424

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
9424
7#
发表于 2025-5-18 11:28:45 | 只看该作者
火山服务器类库对go的标准库基本是一比一封装过来的,因此想把go代码转换到火山服务器也很简单,就是直接在火山类库中搜对应的go封装代码,然后使用所找到的火山类库命令即可.
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|Archiver|手机版|小黑屋|递归火山软件开发平台 ( 鄂ICP备18029190号 )

GMT+8, 2025-6-1 20:06 , Processed in 0.090500 second(s), 17 queries .

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表