How to execute a file without .sh extension in shell

In Linux you use ./filename too run a script. And you need execute permission:

chmod 755 filename

But you still need the "Shebang":

#!/bin/bash

From here I got this:

If you did not put the scripts directory in your PATH, and . (the current directory) is not in the PATH either, you can activate the script like this:

./script_name.sh

A script can also explicitly be executed by a given shell, but generally we only do this if we want to obtain special behavior, such as checking if the script works with another shell or printing traces for debugging:

rbash script_name.sh

sh script_name.sh

bash -x script_name.sh


If the file is already executable as abc.sh, then all you need to do is

mv abc.sh abc

(assuming you are in the directory where the file lives)

In a Linux or Unix shell, file extension doesn't affect whether it will execute or not.

Tags:

Linux

Unix

Shell

Sh