If you write a program in Perl, your colleague writes a program in Tcl/Tk and your company runs an open source program that's written in Python, how do your users ensure that they get the right interpretter to run the program? You certainly don't want them to have to remember to type something like:
perl bestest
tcl greatprog
python goodprice
On systems running a
Microsoft Windows operating system, you can simply give the programs appropriate extensions - .pl for Perl, .tcl for Tcl and .py for Python in my examples and - provided that the registry is set up correctly - the operating system will know which language interpretter to use.
On systems running
Linux or Unix based operating systems, you have two steps to take:
a) The very first line of the file should start # - ! - then the full path to the executable language - typically:
#!/usr/bin/perl
#!/usr/bin/tclsh or #!/usr/bin/wish
#!/usr/bin/python
b) The file should be marked as being executable - normally done using the chmod command. Examples:
chmod ug+x bestest
chmod a+x greatprog
chmod 550 goodprice
On
all systems you might also want to update the path that the operating system looks in for executable files using the PATH environment variable. Setting of this variable depends on which (if any) command line interpretter you're using. If you don't set the path, you can still run the program by double clicking it (windows explorer) or prefixing the file name with ./ to run it on Unix or Linux. Thus:
./bestest
./greatprog
./goodprice
(written 2005-05-29, updated 2006-06-05)
Associated topics are indexed as below, or enter http://melksh.am/nnnn for individual articles
Y102 - Python - Fundamentals [633] Copying a reference, or cloning - (2006-03-05)
[748] Getting rid of variables after you have finished with them - (2006-06-06)
[956] Python security - trouble with input - (2006-11-30)
[1430] Integer v float - Python - (2007-11-12)
[1448] Question on division (Java) - Also Perl, PHP, Python ... - (2007-11-28)
[1461] Python - input v raw input - (2007-12-06)
[1878] Pascals Triangle in Python and Java - (2008-11-10)
[2368] Python - fresh examples of all the fundamentals - (2009-08-20)
[2442] Variable storage - Perl, Tcl and Python compared - (2009-10-08)
[2778] Learning to program in Python 2 ... and / or in Python 3 - (2010-05-24)
[3083] Python - fresh examples from recent courses - (2010-12-11)
[3181] Beware - a=a+b and a+=b are different - Python - (2011-02-23)
[3278] Do I need to initialise variables - programming in C, C++, Perl, PHP, Python, Ruby or Java. - (2011-05-05)
[3551] Some terms used in programming (Biased towards Python) - (2011-12-12)
[3886] Formatting output - why we need to, and first Python example - (2012-10-09)
[3917] BODMAS - the order a computer evaluates arithmetic expressions - (2012-11-09)
[4324] Learning to program - variables and constants - (2014-11-22)
[4442] Mutable v Immuatble objects in Python, and the implication - (2015-02-24)
[4712] A reminder of the key issues to consider in moving from Python 2 to Python 3 - (2016-10-30)
T202 - Tcl/Tk - Tcl Fundamentals [3] Looking for a donkey - (2004-08-05)
[210] Joining lists in Tcl. Indirect variables in Tcl. - (2005-02-12)
[349] Comments in Tcl - (2005-06-16)
[362] The ireallyreallywanna operator - (2005-06-28)
[782] Converting between Hex and Decimal in Tcl - (2006-06-28)
[1136] Buffering output - why it is done and issues raised in Tcl, Perl, Python and PHP - (2007-04-06)
[1282] Stringing together Tcl scripts - (2007-07-29)
[1426] Buffering up in Tcl - the empty coke can comparison - (2007-11-10)
[1469] Curley brackets v double quotes - Tcl, Tk, Expect - (2007-12-12)
[4453] Tcl variable names - no real limits! - (2015-03-10)
P203 - More about the Perl Environment [743] How to debug a Perl program - (2006-06-04)
[1865] Debugging and Data::Dumper in Perl - (2008-11-02)
[2876] Different perl examples - some corners I rarely explore - (2010-07-18)
Some other Articles
Looking up IP addresses08:45 is a difficult timeAn O level comes in handythe Stately Homes of EnglandMaking programs easy for any user to startHow far should our support goUK Tax payment totals and where the money is spentGone Racing - Larkhill, WiltshireThe backtick operator in Python and Perl1 in 48 steel