pb with script execution


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers pb with script execution
# 1  
Old 09-14-2006
pb with script execution

Hello,

Can somebody tell me the differnce between a call of a ksh with the dot :

>. script.ksh

and the call without the dot:

>script.ksh

In my script I have writen a test for the number of parameters:
if [ $# -ne 0 ]
then echo 'Usage : '$0
exit 1
fi

as my script doesn't need any parameter

if I call like this:
>. script.ksh
$# =
$0 = -ksh
which is wrong
I can't do a correct test of my parameters, but if I remove the parameter test I can give value to variables, and these variables are known and have a value in my parent shell and can be used by other scripts

If I call like this:
>script.ksh
$# = 0
$0 = script.ksh
which is OK, but I want to export variables that must be used in other script and my variables remains unknown in my parent shell
but it seems that I can execute other script that can see the variables....

I don't understand anything....

see you
Cécile
# 2  
Old 09-14-2006
When you run a script as ". ./scriptname", the script executes in the context of the current shell. All your shell variables (such as $0, $#, etc) will also be those of the current shell. So showing $0 to be -ksh is what should happen.

Since the script that you are using is basically to setup env. variables, don't check for things like $0, just export your variables and be done with it.
# 3  
Old 09-14-2006
pb with script execution

Thank you for your answer.

I understand a little bit more.

If a call with the dot I stay in the parent shell ?
In fact I don't really execute the script but I read it??
Do I execute another shell when I call a script with the dot ?

You 're right I don't need to check parameters here.

Ok, it works when I call like that :

. Script1.ksh

. Script2.ksh
# 4  
Old 09-14-2006
Quote:
Originally Posted by Cecile
If a call with the dot I stay in the parent shell ?
In fact I don't really execute the script but I read it??
Absolutely correct. As far as I know, sourced scripts don't even need to be set executable.
Quote:
Do I execute another shell when I call a script with the dot?
Nope, it runs in the existing one. They call it 'sourcing' but a better name might be 'include' or 'import'.
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Advanced & Expert Users

Script execution

I need to call a script if the month end falls on Saturday or Sunday (5 Replies)
Discussion started by: bala1985
5 Replies

2. Shell Programming and Scripting

Freezes up execution of the script

My script that I wrote is no longer running, but just freezing when I execute it. Before it was running and showing me where errors were, now when I execute it, nothing happens and i cant type anything into the command screen. The script was a looping script, what could be going on? (8 Replies)
Discussion started by: MJCreations
8 Replies

3. Solaris

Script on Solaris spawning 2 processes for one shell script execution

Hi, I am having a shell script on Solaris 10 which has a while loop as shown below. #!/usr/bin/ksh # while do sleep 60 done Name of the shell script is coldcentric.sh. I executed script /DATAWAREHOUSE/LOAD/Scripts/coldcentric.sh from a command task in Informatica worklow as... (3 Replies)
Discussion started by: chekusi
3 Replies

4. Shell Programming and Scripting

execution of a script

Hi i have a small script like this $ cat test.sh #!/usr/bin/sh name="ram" echo ${1} set 1 2 3 4 5 6 7 8 9 0 123 o870 echo $9 echo ${12} when i am trying to execute like below i am not getting the output jena samp_perl $ sh test.sh test.sh: This: not found (12 Replies)
Discussion started by: ragilla
12 Replies

5. Emergency UNIX and Linux Support

invoke one script based on previous script execution

I am database guy and not very good at shell scripts. I am seeking help to sharp my script coding. I have 5 scripts 1. master script. I use this one to call other four scripts to do database work. 2. db_backup_1 and log_backup_1 3. db_backup_2 and log_backup_2 in master script, I want to... (4 Replies)
Discussion started by: duke0001
4 Replies

6. UNIX for Advanced & Expert Users

SSH using shell script terminates the script execution

Hello, I am writing a shell script in which i do ssh to remote server and count the number of files there and then exit. After the exit the shell script terminates which i believe is expected behavior. Can some one suggest me a way where even after the exit the script execution resumes. ... (2 Replies)
Discussion started by: manaankit
2 Replies

7. Shell Programming and Scripting

Script Execution

Hello all, I generally get 6 or more files at location /usr/example.Files listed below er 1 2 3 9.txt er 2 2 3 9.txt er 3 2 3 9.txt er 4 2 3 9.txt abc.next del pa.txt cr ad.txt ps tr as er.txt Now the issue is i need to transfer 2 files (one file is fixed called abc.next) at a... (12 Replies)
Discussion started by: j_panky
12 Replies

8. Shell Programming and Scripting

Expect Issue Serial Forground Execution vs Concurrent Background Execution

I have an expect script that interrogates several hundred unix servers for both access and directories therein using "ssh user@host ls -l /path". The combination of host/path are unique but the host may be interrogated multiple times if there are multiple paths to test. The expect script is run... (2 Replies)
Discussion started by: twk
2 Replies

9. Shell Programming and Scripting

Script to carry-over the script execution to another system

The situation is like this. If I need to know the parameters of all the unix servers connected to a common network, is it possible to get all the parameter details of all the system with the help of a script written in one server?? Can a script be written like that ? Let me give some... (3 Replies)
Discussion started by: yuvanash
3 Replies

10. Shell Programming and Scripting

help on script execution

Hi, Please help me on the below code of line of what it actually does ${Script_dir}/scrip1.sh & export script1_pid=$! ${Scipt_dir}/script2.sh & export script2_pid=$! ${Scrip_dIR}/script3.sh & export script3_pid=$! wait ${script1_pid} //could u tell me wht this... (8 Replies)
Discussion started by: sussane
8 Replies
Login or Register to Ask a Question