Shell script file (.sh) does not run, and throws an error

I am new to Linux, and I have a shell script (.sh) file I on my Desktop that I want to run.

This is the content of the test.sh file on my Desktop directory:

#!bin/bash
#test.sh
echo "test"

I want to run (execute) test.sh through the terminal. These are the commands that I'm using:

cd Desktop

I give permission to run test.sh with:

chmod +x test.sh

and then try to open the file:

test.sh

But I get this error:

test.sh: command not found

and when I enter test.sh with ./, I again get this error:

bash: ./test.sh: bin/bash: bad interpreter: No such file or directory

What am I doing wrong?

3 Answers

bash: ./test.sh: bin/bash: bad interpreter: No such file or directory

Replace:

#!bin/bash

With:

#!/bin/bash

bin/bash is a path relative to the current directory. /bin/bash is an absolute path that works whatever the current directory is.

Also, have a look at your PATH:

echo $PATH

If you place test.sh in any directory listed there and you will will be able to execute it without the ./ or other path specifier. Many people create a $HOME/bin directory, place all their scripts there, and add it to their PATH.

1

To be able to run your bash script, change first line to

#!/bin/bash

That is the binary that will interpret and run your script.

To run a bash script, do the following

./scriptname.sh

In your example:

./test.sh

in the directory where you have the script.

0

I edited the .sh file on a Windows machine and saw similar issue. The issue was fixed after running dos2unix on the script.

Your Answer

Sign up or log in

Sign up using Google Sign up using Facebook Sign up using Email and Password

Post as a guest

By clicking “Post Your Answer”, you agree to our terms of service, privacy policy and cookie policy

You Might Also Like