Function problem


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Function problem
# 1  
Old 01-24-2014
Function problem

hey guys, im trying to learn bourne shell atm and I'm having some issues with functions.



so heres my code:

Code:
#!/bin/bash

##functions

memory () {
free -m
}

space () {
    df -h
}


ip () {
    arp
}


user () {
    whoami
}



#'eingabemenü'

echo " hello how would you like to proceed? "
echo " 1) check memory "
echo " 2) check free space "
echo " 3) ip info "
echo " 4) user info "
echo " 5) nothing i'd just like to exit "

##read

read input;

case $input in 

    1)  echo " you've selected check memory..1 sec pls "
echo -e " free memory: " ; free -m;;
    2)  echo " you've selected check free space..1 sec pls "
echo -e " free space: " ; df -h;;
    3)  echo " you've selected ip info . 1 sec pls "
echo -e  " ipinfo: " ; ifconfig;;
    4)  echo " you've selected user info..1 sec pls "
echo -e " benutzer: " ; whoami;;
     5)  exit
esac

i came this far, Smilie now my problem is, i want to open my shell script by
Quote:
test.sh space
for example and i want the function "space" which ive created to show me the info I need.

can anyone help me trying to fix this. thanks guys
# 2  
Old 01-24-2014
Hello,

I think that you should launch your script in this way
Code:
./test.sh 2

or other number that do you want.
# 3  
Old 01-24-2014
maybe I didnt write correctly and you missunderstood me, i'm sorry.
what i want to do is. when i open my script my normal menu appers. now i just want to make it quicker and enter the function after the test.sh path i already defined before and get my data.
greets
# 4  
Old 01-24-2014
Hi,
your script defines some functions but never uses them. When you process the userinput you call some commands directly that you use in the functions .
About your problem: command line arguments are stored in the positional parameters. They are referenced by a number which reflects their position. The first argument is $1, the second $2,... The special parameter $# holds the number of arguments passed.
I would check if $# is 1 and if that's true assign the corresponding number to the variable input depending on what $1 holds.
This User Gave Thanks to cero For This Post:
# 5  
Old 01-25-2014

If you want to get a value from the command line, use the positional parameters, $1, etc., not 'read'.

Code:
case $1 in 
    1|memory)  echo " you've selected check memory..1 sec pls "
               echo -e " free memory: " ; free -m;;
    2|space)  echo " you've selected check free space..1 sec pls "
              echo -e " free space: " ; df -h;;
    3|ipinfo)  echo " you've selected ip info . 1 sec pls "
               echo -e  " ipinfo: " ; ifconfig;;
    4|user)  echo " you've selected user info..1 sec pls "
             echo -e " benutzer: " ; whoami;;
     5|exit)  exit
esac

This User Gave Thanks to cfajohnson For This Post:
# 6  
Old 01-25-2014
You could try this:
Code:
#!/bin/sh
#
#	Vars & Functions
#
	MENU="memory space ip user"
	memory () {
		free -m
	}

	space () {
	    df -h
	}


	ip () {
	    arp
	}


	user () {
	    whoami
	}
#
#	Menu
#
	if [[ -z $1 ]]
	then	echo "Select which info to display"
		select ENTRY in $MENU;do break;done
	else	ENTRY=$1
	fi
#
#	Execute
#
	$ENTRY

Hope this helps

NOTE:
This only works as long as the menu entry to choose from is named identical as the function to execute

Last edited by sea; 01-25-2014 at 07:54 PM..
This User Gave Thanks to sea For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Bash function problem

I am trying to figure out why I am having a "problem" with some functions in a bash script I am running. The reason for air quoting is that the functions are working, they are just not displaying anything to screen when called from another function. Here's an example: function Create_Input {... (6 Replies)
Discussion started by: dagamier
6 Replies

2. Shell Programming and Scripting

Problem using function in awk

I created two functions that output two random variables. I want to output them in the output file. But it does not seem to work. # Function rgaussian1(r1, r2) # Gaussian random number generator function rgaussian1(r1, r2) { pi = 3.142 v1 = sqrt( -2 * log(rand()) ) v2... (18 Replies)
Discussion started by: kristinu
18 Replies

3. Shell Programming and Scripting

Calling Function Problem

Hi, I had a scripts which calls two function. One function will call another function, script is working fine but the second function is not calling the first function. Below is the script #!/usr/bin/ksh fun1() { echo $DATETIME >> Test1.ksh return 0 } fun2() { typeset DATETIME=`date... (5 Replies)
Discussion started by: somu_june
5 Replies

4. Shell Programming and Scripting

mail function problem

Hello all, I'm attempting to sent an e-mail with the following funtion in my script. The tested that the logic is correct with another native os command, but I can't seem to get mail to work. I played with the "", just can't seem to get it right. Any ideas? Thanks. $my_mail = `mail... (4 Replies)
Discussion started by: jwholey
4 Replies

5. Shell Programming and Scripting

problem, with if condition in function

Hi All, I have a function which reads parameter and gets the value from config file. The entry in the file can be either of two Name=value or Name=value so if the variant is not present it should return me the generic value ie Name without variant. I am first searching for variant in... (4 Replies)
Discussion started by: gurukottur
4 Replies

6. Shell Programming and Scripting

Problem with function script.

Need an extra set of eyes. Can't find function. Can someone help, please. Thanks echo " Is this the correct list of tapes to eject (y/n)?" read option echo $option case $option in y|Y) TAPE_ROUTINE;; ... (3 Replies)
Discussion started by: gzs553
3 Replies

7. Shell Programming and Scripting

Function Problem and CoreDump

Hi, i have a question: i build this function: function WriteLog { .... ... print $* print $* >> FileLog .... .... } the function are called with this sintax: ..... ..... (8 Replies)
Discussion started by: ZINGARO
8 Replies

8. Shell Programming and Scripting

Problem with Recursive function

Hi all, I have to move all the files in a tree directory structure to a single directory. Inorder to know which file is from which directory , i'll have to add the name of the directory to the file name. For this i wrote a recursive function which is as follows... (4 Replies)
Discussion started by: malle
4 Replies

9. Shell Programming and Scripting

PERL function problem

I have perl script as follow. ------------------------------------------------------------------------ #! /usr/bin/env perl use strict; sub printLines { print "Inside the function.............\n"; my (@file , $count , $key ) = $_; print $count , $ key ; #... (2 Replies)
Discussion started by: avadhani
2 Replies

10. Programming

Problem with aio_write() function

Hello, How to execute a call back function after aio_write() or aio_read() in Sun Solaris 5.7? I have filled the control block struct aiocb as follows: aio_sigevent.sigev_signo = SIGEV aio_sigevent.sigev_notify = SIGEV_THREAD Then I have filled the call back function in ... (0 Replies)
Discussion started by: hmurali
0 Replies
Login or Register to Ask a Question