If you are trying to execute a bash .sh script on Linux or Unix environment like Ubuntu or macOS and you get the error "/bin/bash^M: bad interpreter: No such file or directory" the reason is that you have Ctrl+M characters in your file, most likely its because you wrote the file on a Windows text editor having Windows EOL encoding format (\r).
Fix/Solution:
There are multiple ways in which this issue can be fixed, let's take a look at a few of them.
Solution 1: Using sed command:sed command is a stream editor for filtering and transforming text, so you can read all \r (ctrlM) characters and remove them.
# sed -ie 's/\r$//' your-script-filename.sh
or,
sed -ie 's/^M$//' your-script-filename.sh
Solution 2: Using Text Editor like Notepad++/Sublime Text/Edit Plus:
You can make use of Text Editors like Notepad++ to change the End Of Line Encoding (EOL),
Notepad++- Open the file in Notepad++,
- Go to Menu: Edit,
- Now Look for option, EOL Conversion,
- And choose UNIX/OSX Format
More Posts related to Bash,
- How to use Autocomplete and Autosuggestion in Shell Commands
- Bash How to Save Output of a Command to a Variable
- How to know the current shell you are logged in?
- How to Echo Bash Command to a File
- Bash Command to Get Absolute Path for a File
- How to Split a String based on Delimiter in Bash Scripting
- Bash: Command Line Arguments to Bash Script Examples
- Bash Command to Download a File From URL
- How to check if a Command Exists using Bash Script
- Ways to Increment a counter variable in Bash Script
- Know Bash shell version command
- Bash command to Read, Output and Manipulate JSON File
- Bash Command to Base64 Decode a String
- Bash Command to Check Python Version
- Bash: Command to Find the Length of a String
- What is $$ in Bash Shell Script- Special Variable
- Bash - How to check if a Command Failed?
- List all Username and User ID using Bash Command
- Command to Sort File In Reverse Order [Unix/Linux/macOS]
- bash: netstat: command not found
- Bash Command To Go Back To Previous Directory
- [Fix] bash: script.sh: /bin/bash^M: bad interpreter: No such file or directory
- How to check your IP using bash for Windows?
- Bash Command To Check If File Exists
- Convert String from uppercase to lowercase in Bash
More Posts:
- How to add ruler in Sublime Text tab window - Sublime-Text
- Binary, Decimal, Octal, and Hexadecimal Numbers Tables - 2022
- Stop a Running Command on macOS Terminal - MacOS
- How to Convert CSV file to SQL Script using Notepad++ - NotepadPlusPlus
- Pandas: Reading .xlsx or .xls Excel Files - Python
- [Fix] java.net.MalformedURLException: unknown protocol - Java
- Clone a particular remote brach using git clone command - Git
- Convert JSON to Java Collection Map using Jackson - Java