What does the line: #!/usr/bin/sh do?

By lokem
May 16, 2002
  1. Hi all,

    Hope someone here is familiar with shell scripts...

    Anyway, at the top of a script, there'll almost always be a line like #!/usr/bin/sh

    Anyone know what that line does exactly?

    Does this mean that the script will be called using /usr/bin/sh <scriptname>?

  2. Julio Franco

    Julio Franco TechSpot Editor Posts: 7,059   +645

    If I'm not wrong, the location of the language installation files on the server. (the wording might be wrong but you get the idea ;) )
  3. lokem

    lokem TS Rookie Topic Starter Posts: 672

    Language installation file? Uhh... DO you mean the shell exec file?
  4. recoombe

    recoombe TS Rookie

    i'm no huge expert but usually that line means what shell you have to run the program in to get it to work. when i used to do korn shell programming in junior year of college we always had to put !/bin/sh (or wahtever the syntax is) so that the shell will run the script as korn instead of maybe a c shell script. same thing for perl, etc. if the shell you're trying to execute the program in matches that line then you're ok. its just to make sure that if the shell is different from the language of the program that it runs on the right compiler instead of for example a korn shell script trying to compile on gcc or something like that.
  5. Rick

    Rick TechSpot Staff Posts: 4,573   +65

    This is much like to run perl scripts, you have to type in something along the effect of #!/usr/bin/perl

    This line is called a "shebang line".
Topic Status:
Not open for further replies.

Similar Topics

Add New Comment

You need to be a member to leave a comment. Join thousands of tech enthusiasts and participate.
TechSpot Account You may also...