Q:

Golang program to execute a specified shell command with specified option

0

Here, we will execute a specified command with a specified option using the syscall.Exec() function. And, we will execute the "ls" shell command with the "-l" option and print output on the console screen.

All Answers

need an explanation for this answer? contact us directly to get an explanation for this answer

Program/Source Code:

The source code to execute the specified shell command with the specified option is given below. The given program is compiled and executed on the ubuntu 18.04 operating system successfully.

// Golang program to execute a specified shell command
// with specified flag

package main

import "os"
import "os/exec"
import "syscall"

func main() {
	command, err := exec.LookPath("ls")
	if err != nil {
		panic(err)
	}

	args := []string{"ls", "-l"}

	err = syscall.Exec(command, args, os.Environ())
	if err != nil {
		panic(err)
	}
}

Output:

total 36
drwxr-xr-x    2 root     root         12288 Feb 18 00:56 bin
dr-xr-xr-x    1 root     root             0 May 30 20:43 dev
drwxr-xr-x    1 root     root          4096 May 30 20:43 etc
drwxr-xr-x    2 nobody   nobody        4096 Mar  9 19:36 home
drwxr-xr-x    2 root     root          4096 Feb 18 00:56 lib
lrwxrwxrwx    1 root     root             3 Feb 18 00:56 lib64 -> lib
dr-xr-xr-x    2 root     root             0 May 30 20:43 proc
drwx------    2 root     root          4096 Mar  9 19:35 root
dr-xr-xr-x    1 root     root             0 May 30 20:43 sys
drwxrwxrwt    1 root     root             0 May 30 20:43 tmp
drwxrwxrwx    1 root     root             0 May 30 20:44 tmpfs
drwxr-xr-x    1 root     root          4096 Mar 19 20:49 usr
drwxr-xr-x    4 root     root          4096 Mar  9 19:36 var

Explanation:

In the above program, we declare the package main. The main package is used to tell the Go language compiler that the package must be compiled and produced the executable file. Here, we imported the required packages to predefined functions.

In the main() function, we checked "ls" command exists or not, using exec.LookPath() function and get the handle for the command. After that, we executed the "ls" command with the "-l" option using the syscall.Exec() function and print the output of the "ls" command on the console screen.

need an explanation for this answer? contact us directly to get an explanation for this answer

total answers (1)

This question belongs to these collections

Similar questions


need a help?


find thousands of online teachers now