Sponsored Content
Top Forums Shell Programming and Scripting How does calling it .sh help? Post 302808821 by Corona688 on Friday 17th of May 2013 03:07:31 PM
Old 05-17-2013
Quote:
Originally Posted by triplemaya
What difference does the shebang make? My scripts have been running ok without it. Does that mean that the system guessed right which interpreter to use?
The system doesn't guess at all -- it assumes /bin/sh if you don't tell it.

Which works great if your script is a garden-variety bourne shell. For Perl, it's wrong.

Quote:
Is it good practice to always put it in?
Yes, especially if you're using shell features like arrays which may not always be present in the garden-variety /bin/sh... /bin/sh may be a full-featured BASH on your system, but on others it may be a mouldy old shell with no features but pure Bourne.

So use #!/bin/sh for pure bourne scripts, #!/bin/ksh for ksh scripts, #!/bin/bash for bash scripts, and so forth. Use the exact right shell and people will know which it needs. Better they get a 'no such file' error than your script misbehaves and does unintended things.

Quote:
I am calling functions such as mkdir and rsync - does it make a difference if I put in the shebang or not? (I have read man file but I am not a lot wiser on this point as a result.)
These are not functions, they are external programs. As such they don't care at all which shell you use, any shell has access to them and they all run outside it.

Shell builtins on the other hand can vary between shells. /bin/sh may not have pushd/popd, but bash will.
 

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Calling a script from another

Hi, I have 2 scripts, one is the .profile and the other is a SID selector for Oracle Databases. But when I call one from the other, even though it seems to have worked, it doesn't. Can anyone help?? ******************* .profile********************** #!/bin/ksh .... (5 Replies)
Discussion started by: dnkansah
5 Replies

2. Cybersecurity

i am trying to find out who is calling me

they are having an operator call my home line and also my cell number and they are typing and the operator tells me what they are typing on their computer. i nevere heard of this. it is new to me. it is free the operator said, they knew my name and also a friend of mine's name...the phone says the... (2 Replies)
Discussion started by: gail
2 Replies

3. Shell Programming and Scripting

Get Calling File

OK, I'm very new to shell scripting, and I'm trying to write a (very) simple wrapper for sendmail that outputs all the arguments as well as the file that called sendmail to an output file which can later be looked over. Is it possible to get a file's name and path that called a script? (0 Replies)
Discussion started by: ghstber
0 Replies

4. UNIX for Dummies Questions & Answers

Calling a function

I have created a file generic.func and it has lots of functions. One of the functions is this: Check_backup_size() { dsmc q b $BACKUP_DIR/"*.Z" | awk '{print $1}'|sed 's///g' > outputfile X=`awk '{sum += $1} END {print sum }' outputfile'` echo "$X" ls -ltr $BACKUP_DIR/"*.Z" | awk... (5 Replies)
Discussion started by: ashika
5 Replies

5. Shell Programming and Scripting

calling script

Hi all, The scenario is: 1. I created a script called hello 2. i created another script called blah which meant to use "hello" script. How do i do it? e.g. "blah" script #!/bin/sh test = /home/blah/hello echo "please enter name" read name test $name is it correct ? or i... (2 Replies)
Discussion started by: c00kie88
2 Replies

6. UNIX for Dummies Questions & Answers

Calling alias

I have created a shortcut for the file kill_process.sh as shown below. alias kill_process="sh /root/kill_process.sh" It is working as per my expectations. But I have 2 questions. 1) Is there any better way? 2) How do I check what does kill_process link to? (1 Reply)
Discussion started by: shantanuo
1 Replies

7. UNIX for Dummies Questions & Answers

help with calling programs

Hi. I have a problem in running a program in linux system. This program (damaver.l86) is in the path /home/shenk/damaver/, and it needs to call another program (supcomb.l86) in another path /home/shenk/supcomb/. I tried to modified the .bash_profile, but it didn't work. The error message is always... (1 Reply)
Discussion started by: shenk
1 Replies

8. Programming

calling java from c++

I have an adapter written in c++ from which I need to call a java service point. Could anybody please provide an example program of calling java from c++ thanks in advance. (0 Replies)
Discussion started by: axes
0 Replies

9. Programming

Calling template at once

Hello Again, I am just wanted to know if we can call the Template using "require_once" at PHP? Any views around happy to discuss. Thanks in Advance (2 Replies)
Discussion started by: AimyThomas
2 Replies

10. Shell Programming and Scripting

Calling two function

Hi, I need to run start_load function for two tables. Step 1: if HMAX_TBL_ID and GMAX_TBLI_D are same for tab_name1 then echo message "all table ids are processed" Step 2: go back and call start_load for tab_name2 and check if table id are same for table 2 too. Please let me know how to... (5 Replies)
Discussion started by: sandy162
5 Replies
CHECKBASHISMS(1)					      General Commands Manual						  CHECKBASHISMS(1)

NAME
checkbashisms - check for bashisms in /bin/sh scripts SYNOPSIS
checkbashisms script ... checkbashisms --help|--version DESCRIPTION
checkbashisms, based on one of the checks from the lintian system, performs basic checks on /bin/sh shell scripts for the possible presence of bashisms. It takes the names of the shell scripts on the command line, and outputs warnings if possible bashisms are detected. Note that the definition of a bashism in this context roughly equates to "a shell feature that is not required to be supported by POSIX"; this means that some issues flagged may be permitted under optional sections of POSIX, such as XSI or User Portability. In cases where POSIX and Debian Policy disagree, checkbashisms by default allows extensions permitted by Policy but may also provide options for stricter checking. OPTIONS
--help, -h Show a summary of options. --newline, -n Check for "echo -n" usage (non POSIX but required by Debian Policy 10.4.) --posix, -p Check for issues which are non POSIX but required to be supported by Debian Policy 10.4 (implies -n). --force, -f Force each script to be checked, even if it would normally not be (for instance, it has a bash or non POSIX shell shebang or appears to be a shell wrapper). --extra, -x Highlight lines which, whilst they do not contain bashisms, may be useful in determining whether a particular issue is a false posi- tive which may be ignored. For example, the use of "$BASH_ENV" may be preceded by checking whether "$BASH" is set. --version, -v Show version and copyright information. EXIT VALUES
The exit value will be 0 if no possible bashisms or other problems were detected. Otherwise it will be the sum of the following error val- ues: 1 A possible bashism was detected. 2 A file was skipped for some reason, for example, because it was unreadable or not found. The warning message will give details. SEE ALSO
lintian(1). AUTHOR
checkbashisms was originally written as a shell script by Yann Dirson <dirson@debian.org> and rewritten in Perl with many more features by Julian Gilbey <jdg@debian.org>. DEBIAN
Debian Utilities CHECKBASHISMS(1)
All times are GMT -4. The time now is 02:46 AM.
Unix & Linux Forums Content Copyright 1993-2022. All Rights Reserved.
Privacy Policy