02-01-2008
Maybe you are confused by the fact that if you put a cd command into a file and then execute the file your working directory doesn't change.
This is because the script is executing in a subshell that inherits your current environment. When the script finishes any changes it made to its own environment are lost with it.
The answer is to execute the script within your current environment rather than in a subprocess. This is called sourcing the script due to the command "source" used to accomplish this in the csh. It's still called sourcing the script even though the syntax is simply to use a dot in ksh or bash.
So, if a file called script contains a cd command, then
. script
will change your current working directory.
10 More Discussions You Might Find Interesting
1. UNIX for Dummies Questions & Answers
Hi,
I am looking for some coding standards for Unix Shell Scripting. Can anyone help me out in this?
Regards,
Himanshu (3 Replies)
Discussion started by: himanshu_s
3 Replies
2. Shell Programming and Scripting
Is there any site on Coding Standard for Shell Scripting in UNIX.
Please help me know!!!!!
Thanks
Om (1 Reply)
Discussion started by: Omkumar
1 Replies
3. UNIX for Advanced & Expert Users
Hi ,
I have wrote a telnet clinet application to interact with remote system . This program takes the screen shots for every interaction and send back to us. After connecting to remote machine , i want to call tip utility to interact with a device which is connected to one remote system. Now my... (0 Replies)
Discussion started by: prasadvsda
0 Replies
4. Shell Programming and Scripting
My data is something like shown below.
date1 date2 aaa bbbb ccccc
date3 date4 dddd eeeeeee ffffffffff ggggg hh
I want the output like this
date1date2 aaa eeeeee
I serached in the forum but didn't find the exact matching solution. Please help. (7 Replies)
Discussion started by: rdhanek
7 Replies
5. Solaris
I'm just starting a 'serious' coding in UNIX, so what I need is to run a C code on UNIX, What do I have to install (app) prior to coding/running the code and how do I compile that code?
can I write my c code in UNIX or I need to have a visual studio for this? (7 Replies)
Discussion started by: Peevish
7 Replies
6. UNIX for Dummies Questions & Answers
Hi,
I have very little knowledge with unix and pmcmd. I need help with a issue.
I have to see whether a file has been dropped in a particular location/path. If the file dropped I have to check the last modified time, which should be greater than 8pmEST the prior day. If the file has been... (4 Replies)
Discussion started by: redwolves
4 Replies
7. IP Networking
In the following Unix Tip from Unix Guru Universe, are there some typos?
Specifically, should:
"From hosts(user:deepak)" be "From host2(user:deepak)"? (I'm almost 100% certain it should)
"rlogin hosts.domain.com -l paul" be "rlogin host2.domain.com -l paul"?
Some related... (0 Replies)
Discussion started by: RandyKramer
0 Replies
8. Shell Programming and Scripting
Unix script coding help?
i am trying to write a code that will display following menu to user:
(A) Add
(B) Subtract
(C) Multiply
(D) Divide
(E) Modulus
(F) Exponentiation
(G) Exit
Then ask user for choice (A-F). After taking users choice ask user for two numbers and
perform... (3 Replies)
Discussion started by: renegade755
3 Replies
9. Homework & Coursework Questions
i am trying to write a script code in unix that will:
1. The problem statement, all variables and given/known data:
display following menu to user:
(A) Add
(B) Subtract
(C) Multiply
(D) Divide
(E) Modulus
(F) Exponentiation
(G) Exit
Then ask user for choice (A-F). After taking... (5 Replies)
Discussion started by: renegade755
5 Replies
10. What is on Your Mind?
Hi,
as I mentioned in this thread(https://www.unix.com/shell-programming-and-scripting/280737-awk-function-return-permutations-n-items-out-m.html), a helpful coding style may improve overall value and support for people who come here and want to learn things the participants from unix.com have... (2 Replies)
Discussion started by: stomp
2 Replies
LEARN ABOUT OPENDARWIN
catch
catch(n) Tcl Built-In Commands catch(n)
__________________________________________________________________________________________________________________________________________________
NAME
catch - Evaluate script and trap exceptional returns
SYNOPSIS
catch script ?varName?
_________________________________________________________________
DESCRIPTION
The catch command may be used to prevent errors from aborting command interpretation. Catch calls the Tcl interpreter recursively to exe-
cute script, and always returns without raising an error, regardless of any errors that might occur while executing script.
If script raises an error, catch will return a non-zero integer value corresponding to one of the exceptional return codes (see tcl.h for
the definitions of code values). If the varName argument is given, then the variable it names is set to the error message from interpret-
ing script.
If script does not raise an error, catch will return 0 (TCL_OK) and set the variable to the value returned from script.
Note that catch catches all exceptions, including those generated by break and continue as well as errors. The only errors that are not
caught are syntax errors found when the script is compiled. This is because the catch command only catches errors during runtime. When
the catch statement is compiled, the script is compiled as well and any syntax errors will generate a Tcl error.
EXAMPLES
The catch command may be used in an if to branch based on the success of a script.
if { [catch {open $someFile w} fid] } {
puts stderr "Could not open $someFile for writing
$fid"
exit 1
}
The catch command will not catch compiled syntax errors. The first time proc foo is called, the body will be compiled and a Tcl error will
be generated.
proc foo {} {
catch {expr {1 +- }}
}
SEE ALSO
error(n), break(n), continue(n)
KEYWORDS
catch, error
Tcl 8.0 catch(n)