Passing a variable to sudo sed command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing a variable to sudo sed command
# 1  
Old 11-29-2007
Passing a variable to sudo sed command

hi,

dataParse(){
line="$@"
name="cat /etc/passwd | grep "$line": | cut -f6 -d':'"
eval $name > sam.txt 2>&1

sudo -u $line sed -n 's/data-1/&/p' $name/test.xml >> sam1.txt

}

Here i getting the homedir of the accounts and is set in
name variable.which returns "/home/raju" which i am saving it in sam.txt. This works fine. But when i try to pass this $name variable to " sudo -- sed" command it is not taking and hence the sudo command is not executed.
Pls. do provide a soln to this.

thanks
# 2  
Old 11-29-2007
Quote:
Originally Posted by sachin.tendulka
dataParse(){
line="$@"
name="cat /etc/passwd | grep "$line": | cut -f6 -d':'"
eval $name > sam.txt 2>&1

sudo -u $line sed -n 's/data-1/&/p' $name/test.xml >> sam1.txt

}
This looks a bit broken to me ?
You've got unescaped quotes in the name= line, and you seem to be trying to use the cat... commandline stored in name as part of a filepath in the sudo line... You're also running a farily dangerous grep as you arn't being specific as to which field in the password file to search (so someone with an odd shell or home dir could match incorrectly).

Not understanding what you're after, my guess may be off base, but try something like this to get closer:
Code:
uname=$1
homedir=`egrep "^${uname}:" /etc/passwd | cut -d ':' -f 6`
echo $uname > sam.txt    # But don't know why
sudo -u $uname "sed -n 's/data-1/&/p' ${homedir}/test.xml >> sam1.txt

If you elaborate on what you're after exactly, we can probablt offer more advice Smilie
# 3  
Old 11-30-2007
Thanks Dragon..It works. U made me smile...
# 4  
Old 11-30-2007
Power

Smilie Pleased to help
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Dummies Questions & Answers

Passing value of a variable in sed

Hi, I want to pass value of a variable track_line which is the line number to sed. Sed should print the lines starting from track_line till the last line of the file. I tried the below command but it is not working. sed -n '${track_line},$p' latest_log_file I tried using the below too but... (1 Reply)
Discussion started by: nitinupadhyaya8
1 Replies

2. Shell Programming and Scripting

sed not working while passing the variable to print

Hi I have below sed to search and print particular line that matches in file and prints it, which is actually working fine as expected. sed -n "/^2012-11-19 23:*/p" filename but if I replace date with the variable it seems it's not recognizing it and throwing out error v="2012-11-19"... (4 Replies)
Discussion started by: manas_ranjan
4 Replies

3. Shell Programming and Scripting

Trouble with passing variable to sed

Here is my code #!/bin/bash username=gnowicki sed '$s/$/ $username/' < sshd_config 1 <> sshd_config what this is supposed to do is take the name gnowicki and put it at the end of the last line of the sshd_config and it works except not using the variable, if I put the name "gnowicki" where... (2 Replies)
Discussion started by: slufoot80
2 Replies

4. Shell Programming and Scripting

passing variable to sed command not working

Hello All, I am trying to embed variable in sed command to fetch a portion of record between two pattern. This command is not working ...any suggestion on this how to place the variable in sed command to find a portion . I am using Sun OS (Solaris). Thanks JM (1 Reply)
Discussion started by: jambesh
1 Replies

5. Shell Programming and Scripting

Passing a variable to sed command

Hi guys, I wanted to pass a variable to the sed command which tells which line to be deleted. a=2; echo $a; sed '$ad' c.out it is throwing an error. sed: 0602-403 "$a"d is not a recognized function. I even tried "$a" and \$a.. but it is of no use. Can you please correct me... (6 Replies)
Discussion started by: mac4rfree
6 Replies

6. Shell Programming and Scripting

Passing Variable in sed

Dear All, I want to print a file. First I tried with this sed '2q;d' filename it worked. But when i put following it is not working x=2; sed '$xq;d' filename Would any one suggest how to pass the variable? (7 Replies)
Discussion started by: saifurshaon
7 Replies

7. Shell Programming and Scripting

Passing a variable to sed or cut

:confused: Is it possible to send a variable to a sed or cut command? I have a test script as below: counter=1 while read line do # Test the file printf "$line" > temp$counter pref=$(cut c1-2000 $temp$counter | sed 's///g' | sed 's|.*PutTime\(.*)Origin.*|\1|') printf" let... (5 Replies)
Discussion started by: gugs
5 Replies

8. Shell Programming and Scripting

Passing a variable in SED getting command garbled

I fairly new to SED. I have tried many different variations of this line of code and even breaking it down into its components and running them separately. They work individually without variables but when I place the $todbname variable it will either inserts the text "connect to $todbname"... (3 Replies)
Discussion started by: edewerth
3 Replies

9. Shell Programming and Scripting

variable passing to sed

I m trying to pass variable to sed. export var=140920060731 sed -e '/$var/d' file but no luch so far..? any body has any idea abt it Is there any way to pass variable to SED? Thanks , Manish (2 Replies)
Discussion started by: Manish Jha
2 Replies

10. Shell Programming and Scripting

Passing output of sed/echo to a variable

I understand how to use a variable in a sed command, but for the life of me I can't get the output into a variable. I'm making a general function to replace part of a filename with a different string, so: >>myscript this that would change: this_file001.txt to that_file001.txt and... (11 Replies)
Discussion started by: donflamenco
11 Replies
Login or Register to Ask a Question