I'm a Delphi developer new to linux, new to this forums and new to BASH programming and got a new task in my work: maintaining an existing set of BASH scripts. First thing I want to do is making the code more reliable as in my opinion it's really bad written. So here's the quest:
I'm using an EXIT-trap for cleaning up after a script. For this task I used the Idea from http://www.linuxjournal.com/content/use-bash-trap-statement-cleanup-temporary-files (I'm not yet allowed to post URLs) which defines a function to add to a list of statements to be executed on EXIT called add_on_exit. A second function (on_exit) is registered in the trap and executes the statements added in reverse order. To this point it's all clear to me and working in the first script.
Now I want to re-use this functions. The system consists of 3 parts: The 2 functions and the array. I'm not completely sure about the scope and when the triggering events occur. Here is what I found so far (please confirm or refute):
Functions and variables are valid till the shell closes.
The EXIT "signal" is fired whenever the script ends (in contrast to the validity of the functions and parameters).
When a script is called by executing the file, it is executed in the shell of the caller. (not sure how to check this - Edit: According to cero: If the file is executed by calling the file it opens a new shell for execution, if it's sourced it executes in the existing shell - thanks for clarification!)
When a script is executed by cron, the script is executed in a new shell which is closed afterwards (not sure how to check this)
Calling a script that does nothing but defining functions lets me use them in my script after the call. (doesn't seem to work: functions don't seem to be defined after the call - Edit: source them works, thanks to jim mcnamara)
I can pass a global variable "by reference" to a function by passing the name of the variable and using it with eval (confirmed through tests)
Things that are still unclear to me:
Is it safe to redefine the on_exit function (e.g. on a subscript) while a trap is set (i.e. between the first call to add_on_exit and the end of the script)?
Last but not least here's the actual code I'm planning to use:
Script with the functions (lets call it defineexittrapfuncs):
Script that would make use of the EXIT-trap (edited according to the answer of jim mcnamara):
Hi folks,
I'm just running through an oreilly korn shell book but have witnessed an output difference on my own unix machine and the output provided in the book. Can anyone help?
create a script called ascript as follows:
function afunc {
print in function $0: $1 $2
var1="in... (16 Replies)
Hello.
Looking for a method of modularizing my bash script, I am stuck with such a problem. For example, I have:
MODULE_NAME="test"
FUNCTION_NAME="run"
How do I can a function with name test_run? (4 Replies)
Hi All,
I am new to unix shell scripting,
in the below script "num" is an input file which contains a series of numbers example :
2
3
5
8
I want to add the above all numbers and want the result finally outside the while loop. it prints the value zero instead of the actual expected... (13 Replies)
Hi,
I want to know about the variable scope in shell script.
How can we use the script argument inside the function?
fn () {
echo $1 ## I want this argument should be the main script argument and not the funtion argument.
}
also are there any local,global types in shell script?
if... (3 Replies)
Hi
I'm hoping someone can tell me how to extend the scope of an exported function in the korn shell.
I have written a function in a file that I dot in from my .kshrc file and it works fine.
However I would like this function to be available to anyone in a certain group on the machine... (10 Replies)
Hi All,
I've been researching this problem and I am pretty sure that the issue is related to the while loop and the piping. There are plenty of other threads about this issue that recommend removing the pipe and using redirection. However, I haven't been able to get it working using the ssh and... (1 Reply)
Hello! Before you "bash" me with
- Not another post of this kind
Please read on and you will understand my problem...
I am using the below to extract a sum of the diskIO on a Solaris server.
#!/bin/sh
PATH=/usr/bin:/usr/sbin:/sbin; export PATH
TEMP1="/tmp/raw-sar-output.txt$$"... (3 Replies)
I have to admit that i have not used Perl at all and this is a singular occasion where i have to patch an existing Perl script. I dearly hope i do not have to do it again for the next 15 years and therefore try to avoid having to learn the programming language in earnest.
The OS is AIX 7.1, the... (2 Replies)
The below bash function uses multiple variables CODING, SAMPLE, SURVEY, andvariant
in it. The user selects the cap function and details are displayed on the screen using the $SURVEY variable, the directory is changed to $SAMPLE and the samples.txt is opened so the user can select the sample to... (6 Replies)
Cope sample1: test.sh
i=0
echo " Outside loop i = $i "
while
do
i=$(( $i + 1))
echo "Inside loop i = $i "
done
echo " Out of loop i is : $i "
When run output :
Outside loop i = 0
Inside loop i = 1
Inside loop i = 2
Inside loop i = 3
Inside loop i = 4
Inside loop i = 5
Inside... (8 Replies)