ADVERTISEMENT
ADVERTISEMENT

Golang program to execute a specified shell command with specified option

Here, we are going to learn how to execute a specified shell command without options in Golang (Go Language)?
Submitted by Nidhi, on May 30, 2021

Problem Solution:

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.

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.

Golang Shell Script Programs »



ADVERTISEMENT




ADVERTISEMENT



Comments and Discussions!

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT

ADVERTISEMENT
ADVERTISEMENT
ADVERTISEMENT

Languages: » C » C++ » C++ STL » Java » Data Structure » C#.Net » Android » Kotlin » SQL
Web Technologies: » PHP » Python » JavaScript » CSS » Ajax » Node.js » Web programming/HTML
Solved programs: » C » C++ » DS » Java » C#
Aptitude que. & ans.: » C » C++ » Java » DBMS
Interview que. & ans.: » C » Embedded C » Java » SEO » HR
CS Subjects: » CS Basics » O.S. » Networks » DBMS » Embedded Systems » Cloud Computing
» Machine learning » CS Organizations » Linux » DOS
More: » Articles » Puzzles » News/Updates

© https://www.includehelp.com some rights reserved.