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.
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.
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.
Output:
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