# Scripts

(Difference between revisions)
$./foo.py  • In the second case the script AND in the case of double-clicking the filename, the script would have to include the appropriate shebang line, for example #!/usr/bin/python for Python scripts and #!/usr/bin/perl for Perl scripts. • This will allow the MACs to know where to locate Python and Perl, respectively. • If for some reason this doesn't work, make sure the script is saved with a UNIX style EOL (end of line) so that the shebang will be read properly by the MAC. • A good text editor like Notepad ++ (Windows) easily allows one to make these changes to text files. ### Programming Notes • Save scripts with a UNIX style byte order. Not doing so appears to prevent the OS from being able to read the shebang line. • If you are adding timestamps to log files you may need to strip all whitespaces and colons from your timestamp variable. Not doing so can prevent the file from getting written. • For example if your timestamp variable is$timestamp in a PERL script try this after you've already established your timestamp value:
 #start MAC block
#trimming whitespace and colons because the MAC won't write the output file if they are present
$timestamp=~ s/\s//g;$timestamp=~ s/://g;
#end MAC block

• Make sure you use only forward slashes for path slashes. e.x. "foo/bar" is good, but "foo\bar" is bad.
• There should be no need to ever use backslashes in scripts, however, as Windows OS is equally tolerant of forward and back slashes.