On Wed, Jan 29, 2020 at 12:20 AM Subramanian Sridharan
<clawsonfir...@gmail.com> wrote:
>
> I'm in need of using the "script" command (more info about script in the end) 
> in Linux to run a couple of commands and get the exit status of the second 
> command.
>
> Here is my code snippet:
>
> package main
>
>
> import (
>  "fmt"
>  "os/exec"
> )
>
>
> func main() {
>  op, err := exec.Command("script", "-e", "-q", "-c", "date; exit 
> 1").CombinedOutput()
>  if err != nil {
>  fmt.Println("Error while running command:", err)
>  fmt.Println(string(op))
>  return
>  }
>  fmt.Println("Successfully ran the command.")
>  fmt.Println(string(op))
> }
>
> When I compile this code and run it on two Red Hat VMs, they give me 
> different results.
>
> Working as expected in a Red Hat 8 VM:
> [root@dc-rhel8-1 tmp]# ./script_command
> Error while running command: exit status 1
> Wed Jan 29 21:41:20 IST 2020
>
>
> [root@dc-rhel8-1 tmp]# script -e -q -c "date; exit 1"
> Wed Jan 29 21:42:11 IST 2020
> [root@dc-rhel8-1 tmp]# echo $?
> 1
> [root@dc-rhel8-1 tmp]# script --version
> script from util-linux 2.32.1
>
> Incorrect working in a Red Hat 7 VM:
> [root@dc-rhel7-dev tmp]# ./script_command
> Successfully ran the command.
> Wed Jan 29 21:41:41 IST 2020
>
>
> [root@dc-rhel7-dev tmp]# script -e -q -c "date; exit 1"
> Wed Jan 29 21:42:22 IST 2020
> [root@dc-rhel7-dev tmp]# echo $?
> 1
> [root@dc-rhel7-dev tmp]# script --version
> script from util-linux 2.23.2
>
> Is this behaviour an issue in Go? Or am I missing something?
>
> Thanks in advance!
>
> Some information on the script command:
> By default, when I pipe output from RunCommand, the default terminal width is 
> 80, due to which the output will be scrambled and hard to parse.
> So, I'm using the script command and stty to set the width to a bigger value.
> -e is used to return the exit status of the child process
> -q is used to keep output minimal
> -c is used to specify the command that is to be run


I don't know what is happening here.  It's fairly unlikely that it's a
problem with Go, but it's not entirely impossible.  The next debugging
step would be to run the Go program under `strace -f` and see what the
wait4 system call returns when the "script" command completes.

Ian

-- 
You received this message because you are subscribed to the Google Groups 
"golang-nuts" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to golang-nuts+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/golang-nuts/CAOyqgcUdbr5nUEE03%3DRXXgWL0o-%3DSQs%2BubskwQzv1SY3yr0sUw%40mail.gmail.com.

Reply via email to