Are you receiving a exit code 127 error when trying to execute a Bash script? In this tutorial, we’ll explain what causes this “command not found” error and show you how to fix it.
In this tutorial you will learn:
- What is Bash error 127?
- Remedies for Bash error 127
|Category||Requirements, Conventions or Software Version Used|
|System||Any Linux distro|
|Other||Privileged access to your Linux system as root or via the
|Conventions||# – requires given linux commands to be executed with root privileges either directly as a root user or by use of
$ – requires given linux commands to be executed as a regular non-privileged user
Exit code 127 error status
The 127 error code indicates “command not found”. This occurs when any given command within your Bash script or on Bash command line is not found in any of the paths defined by PATH system environment variable.
The solution is to make sure that the command your are using can be found within your $PATH. If the command is not in your path either include it or use absolute full path to it.
Start by making sure that the command you’re trying to execute is in your $PATH variable:
$ echo $PATH /usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games:/usr/local/games:/snap/bin
If it’s not, you can specify the full path to the command. For example:
/bin/who instead of just
The other obvious thing to do is to make sure that you’ve spelled your command correctly. Make sure it exists by checking with the
which command. For example here we check the location and existence of the
$ which tar /usr/bin/tar
We can see here that
tar is located in the
/usr/bin directory, which is already in our PATH variable.
If you find that you need to add a new directory to the PATH variable, see our other tutorial for step by step instructions on how to do that. For additional information about the exit code 127 status, see the EXIT STATUS section of the Bash man page.