Learn the Functions of Shebang in Linux

Channel: Linux
Abstract: /usr/bin/python to the top of script and changing the mode of the file to be executable. python_script #/usr/bin/env Rscript Now we will write a progr

The #! characters form a magic number. We embed these magic number in any scripts under UNIX / Linux operating systems to tell the kernel what interpreter to execute, to read our script. Like Linux shell, Python, Perl and R interpreters. You might have noticed all Linux shell and Perl / python script starts with the below line:

#!/bin/bash

OR

#!/usr/bin/env python

OR

Learn Bhai Language in 1 min - ?...

To view this video please enable JavaScript, and consider upgrading to a web browser that supports HTML5 video

Learn Bhai Language in 1 min - ?? - bro code ??‍? tutorial #bhailang
#!/usr/bin/env perl

OR

#!/usr/bin/env Rscript

Now we will write a program file for Python language. we can execute this program by calling the interpreter directly without adding shebang line like below.

python_script
import sys

def greeting(name):
    sys.stdout.write("Hello" + name + "\n")

name = "Omar"
greeting(name)

For executing the code, we will mention python before name of the file.

python python_script.py
Output
    Hello Omar

Also we will write a program file for R language. we can execute this program by calling the interpreter directly without adding shebang line like below.

r_script
print("hello world")

For executing the code, we will mention Rscript before name of the file.

Rscript r_script.R
Output
    "hello world"
How to make executable file

to make executable file we should add shebang line #!/usr/bin/python to the top of script and changing the mode of the file to be executable.

python_script
#!/usr/bin/python
import sys

def greeting(name):
    sys.stdout.write("Hello" + name + "\n")

name = "Omar"
greeting(name)

To make the file is executable, type the command below.

chmod +x python_script.py

Now we can just run the file and it will be interpreted by python.

./python_script.py
Output
    Hello Omar
Large computer cluster

The path /usr/bin/python will probably work for most default systems but might not work on things like a large computer cluster. So we will use the program env to get the right interperter.

#!/usr/bin/env python
import sys

def greeting(name):
    sys.stdout.write("Hello" + name + "\n")

name = "Omar"
greeting(name)

We can do the same for any program like Rscript as well.

  #!/usr/bin/env Rscript
  print("hello world")
Read Also:
  • 70 Shell Scripting Interview Questions & Answers

Ref From: linoxide
Channels:

Related articles