Developing the which(1) utility in Go
Go can work with your operating system through a set of packages. A good way of learning a new programming language is by trying to implement simple versions of traditional UNIX utilities. In this section, you'll see a Go version of the which(1)
utility, which will help you understand the way Go interacts with the underlying OS and reads environment variables.
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...