Developing the which(1) Utility in Go
Let’s learn how to create the Go version of the which(1) utility to locate a program file in the user's PATH value.
We'll cover the following
Let’s now discuss a practical example for developing a Go version of the which(1)
utility, which locates a program file in the user's PATH
value.
Go can work with our operating system through a set of packages. A good way to learn a new programming language is by trying to implement simple versions of traditional UNIX utilities. In this lesson, we’ll see a Go version of the which(1)
utility, which will help us understand the way Go interacts with the underlying OS and reads environment variables.
Go code for which(1)
The presented code, which will implement the functionality of which(1)
, can be divided into three logical parts. The first part is about reading the input argument, which is the name of the executable file that the utility will be searching for. The second part is about reading the PATH
environment variable, splitting it, and iterating over the directories of the PATH
variable. The third part is about looking for the desired binary file in these directories and determining whether it can be found or not, whether it is a regular file, and whether it is an executable file. If the desired executable file is found, the program terminates with the help of the return
statement. Otherwise, it will terminate after the for
loop ends, and the main()
function exits.
Coding example
Now, let’s see the code, beginning with the logical preamble that usually includes the package name, the import
statements, and other definitions with a global scope:
Get hands-on with 1200+ tech skills courses.