12-07-2010
This question implies you don't know why the shebang works. Shells ignore it -- it's a comment as far as they're concerned because it starts with # It has absolutely no effect on sourced scripts once, let alone twice.
The OS handles them itself, on exec(). It does it as part of its checking of what kind of executable file a program is. It checks the first two bytes of the file. If it finds #!, it assumes its a shell script and runs the appropriate interpreter. If it finds an ELF header, it loads the executable into memory and runs it that way. If it's a raw a.out executable it loads it in a different manner then executes it. If it finds neither, it assumes it should use the /bin/sh interpreter.
So, the hash-bang only ever does anything -- at all -- ever -- when you're executing a script, not sourcing it, and even then, it works only once, at the very beginning of the file. That's when the OS reads it and picks the interpreter. After that the shell takes over, and it cares not at all about lines beginning with #.
These 2 Users Gave Thanks to Corona688 For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
hey, i'm trying to write a shell script which accepts:
operand operator operand
then, the script would see which operator it is (using case) and calculate it...
but i dont know how to do it correctly with $1 $2 $3... (eliminating accepting separate inputs) (1 Reply)
Discussion started by: quipy
1 Replies
2. Shell Programming and Scripting
I have a shell script which resides on three SCO machines containing some simple sqlplus statments. I need to run these scripts remotely. Currently, I am trying to use rsh to do so:
rsh hostname myscript args
The problem is that the arguments to the sqlplus statements in the remote shell... (4 Replies)
Discussion started by: Madbreaks
4 Replies
3. Shell Programming and Scripting
Hello members,
I'm working on the Solaris environment and the DB i'm using is Oracle 10g.
Skeleton of what I'm attempting;
Write a ksh script to perform the following. I have no idea how to include my sql query within a shell script and loop through the statements. Have therefore given a... (4 Replies)
Discussion started by: novice82
4 Replies
4. Shell Programming and Scripting
#!/bin/ksh
echo -en "\033|||'-'))
echo -e "\033
The above script works fine when the interpreter is ksh, but outputs the following error when #!/bin/bash is used as shebang:
test.sh: line 5: syntax error near unexpected token `('
test.sh: line 5: `case "$ACTIVATION_KEY" in +(|||'-'))' (2 Replies)
Discussion started by: proactiveaditya
2 Replies
5. Shell Programming and Scripting
Hi All,
I am new in UNIX.I have a situation here.:confused:
I have a script which have to be run in every shell (like KSH,BASH,CSH).
Script may be any thing.
But i don't know how to do it.Because the syntax of every shell may be different.
Please advise..
Thanks for your kind advise in... (5 Replies)
Discussion started by: jdash.ps
5 Replies
6. Shell Programming and Scripting
Hello All,
I was writing a Bash shell script that will be executed on both an AIX server (/usr/bin/ksh) and a SLES server (/bin/bash). The AIX server
has Bash installed at "/usr/bin/bash", which is in a different dir then the SLES server.
So basically I am writing the script on the SLES... (4 Replies)
Discussion started by: mrm5102
4 Replies
7. Shell Programming and Scripting
Hi,
Can we use 3 statements convert in a single statement.
First statement output using the second statement and the second statement output using the third statement please let me know the syntax so that I can able to merge all the three statement. (2 Replies)
Discussion started by: Priti2277
2 Replies
8. Programming
hi all,
i have made a shell script and it runs until it reaches the if statement, doesn't the ! mean only if the command fails it will echo me that message and then exit
can anyone please help me what is wrong with my code?
many thanks,
rob
#!/bin/bash
echo "is this archive... (10 Replies)
Discussion started by: robertkwild
10 Replies
9. Shell Programming and Scripting
Hi all, I'm new to shell script
i wrote some shell script for my colleague, everyone is fine,except on user
we are using VNC viewer to work
and there are some script start with shebang #! /bin/csh
there is an user will not terminate after running the script even if a hello world
i need... (5 Replies)
Discussion started by: pilistar0222
5 Replies
10. Shell Programming and Scripting
Hi I am trying the following in my bash script which logs into my machine and runs a command. Trying to solve this using expect.
The first expect statement is hit and it enters the address "10.10.0.10" but when the second expect statement is hit it exits
#!/bin/bash
expect -c '
spawn... (2 Replies)
Discussion started by: skorada
2 Replies
LEARN ABOUT OPENSOLARIS
shells
shells(4) File Formats shells(4)
NAME
shells - shell database
SYNOPSIS
/etc/shells
DESCRIPTION
The shells file contains a list of the shells on the system. Applications use this file to determine whether a shell is valid. See getuser-
shell(3C). For each shell a single line should be present, consisting of the shell's path, relative to root.
A hash mark (#) indicates the beginning of a comment; subsequent characters up to the end of the line are not interpreted by the routines
which search the file. Blank lines are also ignored.
The following default shells are used by utilities: /bin/bash, /bin/csh, /bin/jsh, /bin/ksh, /bin/ksh93, /bin/pfcsh, /bin/pfksh, /bin/pfsh,
/bin/sh, /bin/tcsh, /bin/zsh, /sbin/jsh, /sbin/sh, /usr/bin/bash, /usr/bin/csh, /usr/bin/jsh, /usr/bin/ksh, /usr/bin/ksh93, /usr/bin/pfcsh,
/usr/bin/pfksh, /usr/bin/pfsh, and /usr/bin/sh, /usr/bin/tcsh, /usr/bin/zsh, and /usr/sfw/bin/zsh. /etc/shells overrides the default list.
Invalid shells in /etc/shells could cause unexpected behavior, such as being unable to log in by way of ftp(1).
FILES
/etc/shells list of shells on system
SEE ALSO
vipw(1B), ftpd(1M), sendmail(1M), getusershell(3C), aliases(4)
SunOS 5.11 20 Nov 2007 shells(4)