I occasionally have a need to either view the PATH environment variable from the command line, or search the PATH for something. I wrote a small Python script to make this easy to do, adapting it from an old Perl script I wrote years ago. The script, in its entirety, is shown below (you can also download it here; just save it as a Python script). Note that this script currently has a Windows focus, but could easily be adjusted to work in Linux too.
When used by itself, the script will simply pretty-print all of the paths currently in your environment's PATH. You can pass a --sort
option to sort the output, or you can supply a needle
to search for. Hopefully someone else will find this as useful as I do.
#!/usr/bin/python
import argparse
import os
parser = argparse.ArgumentParser()
parser.add_argument('searchterm', default='', nargs='?')
parser.add_argument('--sort', action='store_true', default=False,
help='Print PATH in a sorted form')
args = parser.parse_args()
path = os.getenv('PATH').split(';')
if args.sort:
path = sorted(path)
if args.searchterm:
needle = args.searchterm.lower()
print(f"\nSearching PATH for {needle}")
matches = []
for p in path:
if needle in p.lower():
matches.append(p)
if matches:
print(f"Found {len(matches)} result{'' if len(matches) == 1 else 's'}")
for m in matches:
print(m)
else:
print(f"Unable to find {needle} in PATH")
else:
print("\nShowing PATH:\n")
for p in path:
print(p)