Need help on awk for printing the function name inside each function


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Need help on awk for printing the function name inside each function
# 1  
Old 01-29-2018
Need help on awk for printing the function name inside each function

Hi,

I am having script which contains many functions. Need to print each function name at the starting of the function. Like below,

Code:
functionname()
{
echo "functionname"
commands....
}

I've tried like below,

Code:
func=`grep "()" scriptname | cut -d "(" -f1`
for i in $func
do
nawk -v var="$i" '1;/var/{c=2}c&&!--c{print "var"}' scriptname
done

But here am not able to get the expected output with "-v" option,Otherwise its working fine.

TIA
# 2  
Old 01-29-2018
awk's construct /var/ looks for exactly that: the three char sequence "v", "a", and "r". That is not recognised as a variable and thus not replaced by its value.
Try $0 ~ var or the match function.


EDIT: Not exactly sure what you're after, but would this go into the right direction:
Code:
awk '
1
/\(\)/  {sub (/\(\)/, _)
         var = $0
         L = NR + 1
        }
NR == L {print "echo \"" var "\""
        }
' scriptname


Last edited by RudiC; 01-29-2018 at 07:49 AM..
# 3  
Old 01-30-2018
HI,

As my script is having too many functions.I need to know the flow while executing..Because of that i need to print each function names inside the function(echo 'functionname')

Note:I can check the flow using bash -x. But it will be better if i know the flow with normal execution.

Now I have used
Code:
$0~var

and its working fine. But I need an option like
Code:
sed -i

,Save changes in place.
# 4  
Old 01-30-2018
Did you consider bash's other debug functionalities, like shopt -s extdebug, or trap ... DEBUG?

awk doesn't have a feature similar to sed -i. Print to a temp file, and then overwrite the original.
This User Gave Thanks to RudiC For This Post:
# 5  
Old 01-30-2018
Thanks a lot for the reply..

I have done using "sed" like below and its working fine.

Code:
func=`grep "()" Scriptname | cut -d "(" -f1`
for i in $func
do
sed  -i "/$i()/ {n;a\
echo $i
}" Scriptname
done

Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

Using echo to print arguments inside a function

I am using echo in bash. Have created a function prargv which takes a number of arguments. Example: prargv "-e" "--examples" Inside prargv, I want to print all the arguments using echo echo "$@" This returns --examples rather than -e --examples" This problem can be fixed... (3 Replies)
Discussion started by: kristinu
3 Replies

2. Shell Programming and Scripting

Getopts inside a function is not working

Hi All, I am using geopts inside a function in shell script. But it is doesnt seem to read the input args and I always gt empty value in o/p. my code is http://sparshmail.ad.infosys.com/owa/14.2.318.4/themes/base/pgrs-sm.gif This message has not been sent. #!/bin/ksh IFS=' '... (1 Reply)
Discussion started by: prasperl
1 Replies

3. Shell Programming and Scripting

If loop inside function not working.

check_deplver () { dir=/abc/def/ghi if ssh -o StrictHostKeychecking=no $1 "" 2> /dev/null then echo " output is " ssh -o StrictHostKeychecking=no $1 "ls -lrt $dir | grep -i abc" 2> /dev/null else echo " directory not presnt" fi } This is not working. But... (7 Replies)
Discussion started by: NarayanaPrakash
7 Replies

4. Programming

Changing value inside function

I have the following code and want to update shiftDesc inside the function. Is it correct to declare the argument as: int shiftDesc void prValue_vd( FILE* stream, // name of output stream int shift, // amount of shift to the right const char* value,... (1 Reply)
Discussion started by: kristinu
1 Replies

5. Shell Programming and Scripting

Call function inside CASE

i have a case statement which branches to different sections based on an input. Each branch needs to call a function. below is the code. FOr some reason, the code inside the function is not getting executed. the code is below for reference. in the below code echo "Function 1" which is there... (2 Replies)
Discussion started by: cvsanthosh
2 Replies

6. Shell Programming and Scripting

Troubles inside an envelope function

Hi all! I have a function (named "orig") that analyze web sites given from an argument, it works very well when by itself: #!/bin/bash chain="$1" echo chain $chain curl "$chaine" -o prop.txt ... and then it perform some analysis on the prop.txt It works flawlessly if I type: orig... (2 Replies)
Discussion started by: Zephyr
2 Replies

7. Shell Programming and Scripting

Function's return value used inside awk

I have a file with the record of person: cat > $TMP/record.txt John Torres M Single 102353 Address Mark Santos M Maried 103001 Address Carla Maria F Maried 125653 Address #!/bin/ksh ManipulateID(){ ... return 0; ... #or return 1; } cat $TMP/record.txt | awk 'BEGIN {printf... (4 Replies)
Discussion started by: Orbix
4 Replies

8. Programming

Inline function inside Classes

#include <iostream> using namespace std; class A { public: int Getvalue() { return i;} private: int i; }; int main() {} The above code compiles properly in g++ or in any other C++ compiler. BUT, the variable 'i' is used (in 'return i' statement) before it is... (1 Reply)
Discussion started by: deepthi.s
1 Replies

9. Shell Programming and Scripting

value inside a function

i have a script like this #!/bin/ksh initialize() { x=20 } ... ... ... x=10 initialize; echo $x (2 Replies)
Discussion started by: trichyselva
2 Replies

10. Shell Programming and Scripting

calling function inside awk

Hi All, My 1.txt contains some functions fun1() .... .... fun2() .... .... I can call these fun from 2.txt inside awk as below value="`fun1 "argument1"`" awk 'BEGIN {printf ("%s", "'"$value"'")}' I need to modify the above code so that without using the variable to store... (2 Replies)
Discussion started by: jisha
2 Replies
Login or Register to Ask a Question