1. 首页
  2. 主题
  3. Go标准库

请教一个exec.Command的问题

karl_zhao · · 5952 次点击
本人是一名新手,今天遇到了一个go调用linux执行文件的问题。 在服务器的PATH里面有些命令是alias生成的,通过exec.Command无法让它执行起来,我以"ll"命令为例,实现如下: ```go cmd := "ll" params := []string{"-a", "/home"} exec.Command(cmd, params).Output() ``` 可是上面的代码没有任何输出,我分析了一下没有运行起来。 初步分析应该是ll命令是一个alias命令,我换成ls就可以了。 但是在实际项目里面确实有几个工具是alias的。 所以,我想请教一下,对于alias的执行文件,怎么才能通过exec.Command来实现呢? 谢谢各位大牛!
别名在终端之所以生效,是因为登录终端时,执行了定义别名的脚本;而你这里没生效,是因为这个定义别名的脚本没有执行,相当于上下文环境中没有这些别名。你试试找到定义别名的地方,然后在代码中先执行下 source 命令试试?
#1
更多评论
``` cmd := "..." exec.Command("bash", "-c", cmd) ```
#2

用户登录

没有账号?注册

今日阅读排行

    加载中

一周阅读排行

    加载中