Visit Our UNIX and Linux User Community


customised functions...


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers customised functions...
# 1  
Old 03-17-2002
customised functions...

I am going to build some commands/functions for common tasks that I have to perform (things like searching a filesystem for a certain string in a file).

I intend to write these as unix scripts. Then adding the location of these to my path.

How can I ensure that the variables specified when I use the commands are applied to the script.

For example.

I will write a command called grepall - which will search the entire file system from a specified point - returning the filename of files containing the specifed string....

The syntax from the command line would be similar to this....(don't worry if it's not right - just for arguements sake)

find /from/here -type f -print | xargs grep -l "mystring" 2>/dev/null


How do I construct the command to take in the arguements of (starting location) and (mystring) - so that I could just type

grepall /home/dir "hello"

Presumable something like

find $x -type f -print | xargs grep -l $y 2>/dev/null....... but then how do I make the function read in $x and $y from the command line entry?

I am using bash..... on solaris.
# 2  
Old 03-18-2002
Here's one way to go:

#this will make sure only two parameters are being passed from the command line
if [ $# -ne 2 ]
then
echo "Usage: grepall [dir] [string]"
exit
fi

#this line will use the two arguments from the command line
find $1 -type f -print |xargs grep -l "$2" 2>/dev/null

I can't promise this will work, since I don't have access to a machine running solaris to test, but hopefully this stuff is the same across different unix flavors.
thekid
# 3  
Old 03-18-2002
So you basically $1, $2, $3 ....etc will be the variables for every entry on the command line after the command itself..... that simple huh? No assignment requried?
# 4  
Old 03-18-2002
You don't HAVE to assign the arguements that are passed from the comamnd line, but you can.

Did you get a chance to test out the above syntax to see if it worked in your environment?
thekid
# 5  
Old 03-18-2002
MySQL

Yeah - she's all good...thanks for that. Just needed to understand that the arguements can just be 'grabbed' from the command line with $1, $2 ......

The functions work great!

Smilie
# 6  
Old 03-18-2002
Here's something else to think about for this situation. Take the example usage syntax below:

grepall -d[dir] -s[string]

If you wanted to invoke your script as shown above, it is made possible by a shell command called getopts. I don't use it much, but I have seen it used by co-workers.

Here's a link if you're interested:
http://linuxdoc.org/LDP/abs/html/internal.html#EX33
Example 11-13.
thekid
# 7  
Old 03-19-2002
I would prefer something which "thekid" has suggested, cause that gives the user to give the options any way he needs ... either <expression> <filename> or <filename> <expression>. It would be also a good coding practice to use swtich (-f, is) etc in your program...
Just an advice..

And ys if you intend to use $x and $y... you could do
$x=$1
$y=$2

As you have already figured out, All the arguments are stored in the series $1 $2 $3 ...

Thanks
 

Previous Thread | Next Thread
Test Your Knowledge in Computers #199
Difficulty: Easy
The TIOBE Index for October 2019 proclaimed that Python is becoming the new big language in favor of languages such as PHP and Perl.
True or False?

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to execute functions or initiate functions as command line parameters for below requirement?

I have 7 functions those need to be executed as command line inputs, I tried with below code it’s not executing function. If I run the ./script 2 then fun2 should execute , how to initiate that function I tried case and if else also, how to initiate function from command line if then... (8 Replies)
Discussion started by: saku
8 Replies

2. Shell Programming and Scripting

customised error message..

Hi, Below is the script that takes some value from the properties file and then move the file from files folder to output folder based upon the modification time of files(configurable N days value),now at the end I want to show a customised message that if no files are moved then it shows the... (1 Reply)
Discussion started by: rahul125
1 Replies

3. Shell Programming and Scripting

i think i need functions ?

Hi, im making a little script but need some help Code i have so far is read -p 'Bot Nickname:' ecnick read -p 'Bot Username:' ecusername read -p 'Bot Realname:' ecrealname read -p 'Your Email:' ecemail echo '' echo Your bots nickname is set to $ecnick echo Your bots username is set to... (2 Replies)
Discussion started by: Gemster
2 Replies

4. Red Hat

Customised Output

I want some customised output of following command: $ls -a|sort gives output as filenames line by line. But I want the output as filenames aeperated by tab? How can I get this? Thanks in advance. (7 Replies)
Discussion started by: ashok.g
7 Replies

5. Shell Programming and Scripting

Need a little help with functions

I'm semi new to unix/linux and am trying to convert a program I wrote in C++ to a bash script. It's a program that prints Fibonacci's series. I have found scripts that will do it, but I'm trying persistently to get this one to work. The problem occurs when I try to return a value from the function.... (3 Replies)
Discussion started by: Glowworm
3 Replies

6. Shell Programming and Scripting

functions

I have korn shells where I want to create a function passing $1 to a function , determine my $STAT_ENV value, set the paths and return the paths for STATSH,STATPRM,STATSQR,STATSQL,STATCTL TO BE USED IN THE UNIX SCRIPT THE CALLED THE fucnction in the first place. Can someone tell me the best... (2 Replies)
Discussion started by: TimHortons
2 Replies

7. Red Hat

running customised firewall -RHEL 4

I have created a custom firewall script in RHEL 4 .Let me explain the steps which i followed . etho -Internal lan eth1 -External lan During the installtion of RHEL 4 ,i enabled Firewall and after booting to x windows i selected enable firewall and defined the defined and customised ports... (0 Replies)
Discussion started by: sud.tech
0 Replies

8. Shell Programming and Scripting

functions in

hi could anybody please suggest me how to put a function memory for particular user. say i am a user rao. want have a function foo in memory . i have done this .typed the function function in the shell it worked for the session.but next time i do login its not there . i can i have a... (6 Replies)
Discussion started by: Raom
6 Replies

9. Shell Programming and Scripting

Regarding functions

Hi, I have a function or script like this. show() { echo "Hi" } | tee -a log show This creates a logfile and prints Hi in it. Now when I try to do the same for sql like this: show() { sqlplus -s scott/tiger<<! select * from details; ! } | tee -a log show Then it gives me a... (2 Replies)
Discussion started by: sendhilmani
2 Replies

10. UNIX for Dummies Questions & Answers

customised filename

Hi, I am taking an output and redirecting it to a file name and this is a hourly or daily process , in this case, i want my file output as some logoutput_date_time.txt how can i form the file name like this for eg i am running this command now, so tail -f... (1 Reply)
Discussion started by: vasikaran
1 Replies

Featured Tech Videos