In a nutshell, the first 2 characters happen to be the ascii representation of the hex values 0x23 0x21 which is a "magic number" that the shell interpreter uses. When the interpreter sees the #! as the first 2 characters, it builds a command line consisting of the remaining characters after the #! followed by the filename itself along with any values passed to it. i.e. for the following script called show_message:
called like this:
The actual command line run by the system would be:
The command after the #! does not have to be a shell either. Try this script:
or this:
Hi.
What does this command do in the shell script?
#!/bin/ksh
I have some scripts which do not run if this line is removed. First I thought it is comment but I think it sets up korn as shell.
Sanjay (2 Replies)
Hi,
I wrote scripting to perform some jobs. (eg, run_job)
Everything works ok when i tested it on my side.
I execute the run_job manually and it works perfectly ok.
When my administrator try to run it using a scheduler job.
He encountered problem of running it.
He said it might be due to... (1 Reply)
Can you please tell me what the command "#!/bin/ksh -e" means?
I tried running a ksh script with "#!/bin/ksh -e" as starting line, and with "#!/bin/ksh" as starting line - they behave differently..
Thanks!
Ramya (2 Replies)
Hi All,
I have a shell (#!/bin/sh) with below piece of code:
if !
then
echo Staging table ABC_INT_TAB is not present in the schema >> $OUTPUT
fi
Shell is throwning below error and continue to work even after this error... (3 Replies)
we have a shell script that we are using in KSH
if ]; then
_IFS=$IFS
IFS=:
and it's failing on /bin/sh . Is there a simple way to modify it to work on both . ( not with awk)
Thanks in adv (3 Replies)
Hi,
I have a problem I don't understand with fuser.
I launch a simple shell script mysleep.sh:
I launch the command fuser -fu mysleep.sh but fuser doesn't return anything excepted:
mysleep:
Then I modify my script switching from #!/bin/sh to #!/bin/ksh
I launch the command fuser -fu... (4 Replies)
Let's say i have 20 users logged on Server. How can I know how much memory percent used each of them is using with system time in each user? (2 Replies)
I saw one script using the first line as below
/usr/bin/ksh -E
I have used -x for debug but couldn't find what is this -E option for ?
Pls let me know what is this -E used for
Thanks
RL (1 Reply)
Some question about the usage of shell scripts:
1.) Are the commands of the base shell scripts a subset of bash commands?
2.) Assume I got a long, long script WITHOUT the first line.
How can I find out if the script was originally designed für "sh" or "bash"?
3.) How can I check a given... (3 Replies)
Discussion started by: pstein
3 Replies
LEARN ABOUT OPENSOLARIS
getusershell
getusershell(3C) Standard C Library Functions getusershell(3C)NAME
getusershell, setusershell, endusershell - get legal user shells
SYNOPSIS
#include <unistd.h>
char *getusershell(void);
void setusershell(void);
void endusershell(void);
DESCRIPTION
The getusershell() function returns a pointer to a legal user shell as defined by the system manager in the file /etc/shells. If
/etc/shells does not exist, the following locations of the standard system shells are used in its place:
/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/pfsh /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
/usr/bin/sh /usr/bin/tcsh
/usr/bin/zsh /usr/sfw/bin/zsh
/usr/xpg4/bin/sh
The getusershell() function opens the file /etc/shells, if it exists, and returns the next entry in the list of shells.
The setusershell() function rewinds the file or the list.
The endusershell() function closes the file, frees any memory used by getusershell() and setusershell(), and rewinds the file /etc/shells.
RETURN VALUES
The getusershell() function returns a null pointer on EOF.
BUGS
All information is contained in memory that may be freed with a call to endusershell(), so it must be copied if it is to be saved.
NOTES
Restricted shells should not be listed in /etc/shells.
SunOS 5.11 1 Nov 2007 getusershell(3C)