05-21-2014
I think if you have a 15MB shell script it's going to be slow no matter what. So if speeding things up is important the best approach is, unfortunately, to redesign the script and break functions into separate pieces. If you do that in a way that makes sense, by creating separate scripts that perform logical sub-tasks, then only the parts that need to run at any given time will be executed. It will probably be easier for you and whoever else inherits it to maintain going forward as well.
If you really have ONE shell function that's around 15MB, that's likely to be a painful redesign though.
And if the entire thing has to run each time, then breaking it up won't help much either. In that case, I think converting to another language that's compiled (C) or at least pre-parsed (python) would be your best bet.
This User Gave Thanks to cnamejj For This Post:
10 More Discussions You Might Find Interesting
1. Shell Programming and Scripting
Simple shell script :
date
test_fn()
{
echo "function within test shell script "
}
on the shell prompt I run
> . test
Then I invoke the function on the command line as below :
test_fn()
It echos the line
function within test shell script
and works as expected.
... (5 Replies)
Discussion started by: r_subrahmanian
5 Replies
2. Shell Programming and Scripting
i've been told that c shell does not support functions/subroutines is that true?
if not can somebody give me the basic syntax for creating a function. it would very much appreciated!
thanks in advance (1 Reply)
Discussion started by: ballazrus
1 Replies
3. Shell Programming and Scripting
Hi All,
I have a very long code called myfunction -> "if ..... else if .... else if ..end if "
And i have several other codes which need to call the "myfunction" code.
How can C-shell call a function "B]myfunction" ? Can any body give me an example ?? (1 Reply)
Discussion started by: Raynon
1 Replies
4. Shell Programming and Scripting
Hi,
I have a query ..
i have 2 scripts say 1.sh and 2.sh
1.sh contains many functions written using shell scripts.
2.sh is a script which needs to call the functions definded in 1.sh
function calls are with arguments.
Can some one tell me how to call the functions from 2.sh?
Thanks in... (6 Replies)
Discussion started by: jisha
6 Replies
5. Shell Programming and Scripting
hi friends,
I am working with shell commands and all these works properly.
Then i created a small function which includes these commands.
Now the problem arises. When the commands are run by calling this fuction.it
shows error.
Why i am not able to run the unix command inside a function.... (1 Reply)
Discussion started by: gjithin
1 Replies
6. Shell Programming and Scripting
hey guys,
i made up a library file called common.lib so as to reuse the same code without typing it again. here is the code. its pretty basic .
## This is the second function
compare()
{
file1 = $1
file2 = $2
cmp $file1 $file2
if
then
echo "comparison is possible"... (1 Reply)
Discussion started by: Irishboy24
1 Replies
7. Shell Programming and Scripting
Hi all,
I have a doubt..
If we create shell functions through a script itself, can we use the same functions in command line also..
for example:
$ cat a.sh
##### Functions
function system_info
{
}
function show_uptime
{
} (4 Replies)
Discussion started by: raghu.iv85
4 Replies
8. Shell Programming and Scripting
so i noticed that when a shell script has a function defined in it, running "sh -x" on that shell script from the command line doesnt show what the function is doing. i like this.
is there anyway for anyone to get around that? to be able to see exactly what a function or functions are doing? (4 Replies)
Discussion started by: SkySmart
4 Replies
9. Shell Programming and Scripting
Hello,
I have a requirement to apply hashing algorithm on flat file on one or more columns dynamically based on header
sample input file
ID|NAME|AGE|GENDER
10|ABC|30|M
20|DEF|20|F
say if i want multiple columns based on the header example id,name or id,age or name,gender and hash and... (13 Replies)
Discussion started by: mkathi
13 Replies
10. UNIX for Beginners Questions & Answers
I want to find c function definition with pattern with shell script by checking condition for each line:
data_type
functionname(param_list){
....
}
I knew cscope or ctag is usable for this task, but if there any ways to do without using them.
I am thinking of checking line condition... (3 Replies)
Discussion started by: cmdcmd
3 Replies
LEARN ABOUT DEBIAN
shell-quote
SHELL-QUOTE(1p) User Contributed Perl Documentation SHELL-QUOTE(1p)
NAME
shell-quote - quote arguments for safe use, unmodified in a shell command
SYNOPSIS
shell-quote [switch]... arg...
DESCRIPTION
shell-quote lets you pass arbitrary strings through the shell so that they won't be changed by the shell. This lets you process commands
or files with embedded white space or shell globbing characters safely. Here are a few examples.
EXAMPLES
ssh preserving args
When running a remote command with ssh, ssh doesn't preserve the separate arguments it receives. It just joins them with spaces and
passes them to "$SHELL -c". This doesn't work as intended:
ssh host touch 'hi there' # fails
It creates 2 files, hi and there. Instead, do this:
cmd=`shell-quote touch 'hi there'`
ssh host "$cmd"
This gives you just 1 file, hi there.
process find output
It's not ordinarily possible to process an arbitrary list of files output by find with a shell script. Anything you put in $IFS to
split up the output could legitimately be in a file's name. Here's how you can do it using shell-quote:
eval set -- `find -type f -print0 | xargs -0 shell-quote --`
debug shell scripts
shell-quote is better than echo for debugging shell scripts.
debug() {
[ -z "$debug" ] || shell-quote "debug:" "$@"
}
With echo you can't tell the difference between "debug 'foo bar'" and "debug foo bar", but with shell-quote you can.
save a command for later
shell-quote can be used to build up a shell command to run later. Say you want the user to be able to give you switches for a command
you're going to run. If you don't want the switches to be re-evaluated by the shell (which is usually a good idea, else there are
things the user can't pass through), you can do something like this:
user_switches=
while [ $# != 0 ]
do
case x$1 in
x--pass-through)
[ $# -gt 1 ] || die "need an argument for $1"
user_switches="$user_switches "`shell-quote -- "$2"`
shift;;
# process other switches
esac
shift
done
# later
eval "shell-quote some-command $user_switches my args"
OPTIONS
--debug
Turn debugging on.
--help
Show the usage message and die.
--version
Show the version number and exit.
AVAILABILITY
The code is licensed under the GNU GPL. Check http://www.argon.org/~roderick/ or CPAN for updated versions.
AUTHOR
Roderick Schertler <roderick@argon.org>
perl v5.8.4 2005-05-03 SHELL-QUOTE(1p)