Q:

Golang program to execute a specified shell command with multiple options

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 "-l","-t", "-r","-a" options 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 specified shell command with multiple options 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 multiple options

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", "-t", "-r", "-a"}

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

Output:

total 44
lrwxrwxrwx    1 root     root             3 Mar  9  2020 lib64 -> lib
drwxr-xr-x    2 root     root          4096 Mar  9  2020 lib
drwxr-xr-x    2 root     root         12288 Mar  9  2020 bin
drwx------    2 root     root          4096 Mar  9  2020 root
drwxr-xr-x    4 root     root          4096 Mar  9  2020 var
drwxr-xr-x    2 nobody   nogroup       4096 Mar  9  2020 home
drwxr-xr-x    1 root     root          4096 Feb 22 21:52 usr
drwxr-xr-x    1 root     root          4096 May 31 02:55 etc
-rwxr-xr-x    1 root     root             0 May 31 02:55 .dockerenv
drwxr-xr-x    1 root     root          4096 May 31 02:55 ..
drwxr-xr-x    1 root     root          4096 May 31 02:55 .
drwxrwxrwt    1 root     root             0 May 31 02:55 tmp
dr-xr-xr-x    1 root     root             0 May 31 02:55 sys
dr-xr-xr-x    2 root     root             0 May 31 02:55 proc
dr-xr-xr-x    1 root     root             0 May 31 02:55 dev
drwxrwxrwx    1 root     root             0 May 31 02:55 tmpfs

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 the exec.LookPath() function and get the handle for the command. Then we prepared the string array for command options. After that, we executed the "ls" command with the "-l","-t", "-r","-a" options 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