Parse variable into a command


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Parse variable into a command
# 1  
Old 11-06-2008
Parse variable into a command

What I am trying to do is write a script that makes some commands easier, now one of the commands is to rebuild mail boxes in plesk, which would would be something like

/usr/loca/psa/websrvmng --vhost-reconfigure --vhost-name=domain.com

but the domain.com bit is going to need to change with the users input.

I have built a menu and have the below code to request a y/n to delete the tmp directory:

Code:
         echo "Confirm deletion of /tmp/* directory contents? Y/N"
            read confirm

                if [ "$confirm" = y ]
                   then
                     rm -rf /tmp/*
                     echo "Deleted" ; echo Tmp Directory Contents Deleted "|" `date` "|" `whoami` >> /var/log/tom.log ; echo "$press"
                else
                   echo "Wimp!!!" ; echo "$press" ;
                   fi ; read ;;

What I want is something similar to the above to instead of asking for y/n to ask for the domain to rebuild and then to pass that into the command.
# 2  
Old 11-06-2008
Code:
echo Enter Domain:
read domain
dig $domain |grep "ANSWER SECTION" >/dev/null 2>&1 &&  /usr/loca/psa/websrvmng --vhost-reconfigure --vhost-name=$domain

I threw the dig in as one way to validate user input (if the domain doesn't exist in dns the command will not run)
# 3  
Old 11-06-2008
you are a legend, thanks.

could you explain this section for me please:

grep "ANSWER SECTION" >/dev/null 2>&1

i assume it is looking for the answer section in the dig, if it finds it its sending it to dev null and if thats correct it then issues the command?
# 4  
Old 11-09-2008
Yes that is right. The dig will only have a line ANSWER SECTION if the domain exists, as found by this machine (however it resolves names). The grep is there as a test, we are not really interested in the output, just whether ANSWER SECTION is in the dig output. the >/dev/null redirects greps stdout to /dev/null (throwing it away) and the 2>&1 redirects the greps stderr to where stdout is currently pointing. grep will then return either 0 or 1 (found or not found). If 0(found), then the command after the && runs, if 1(not found) it does not.

If you wanted to run a script if the domain was not found add || and the command to run to the end of the line.
Code:
dig $domain | \
grep "ANSWER SECTION" >/dev/null 2>&1 && \
 /usr/loca/psa/websrvmng --vhost-reconfigure --vhost-name=$domain || \
 /some/other/command/to/indicate/failure

(the \ at the end of those lines are bash line continuation commands (also ksh I think, but not csh))

Last edited by wempy; 11-09-2008 at 07:22 AM.. Reason: adding other condition
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Grepping for one variable while using awk to parse an associated variable

Im trying to search for a single variable in the first field and from that output use awk to extract out the lines that contain a value less than a value stored in another variable. Both the variables are associated with each other. Any guidance is appreciated. File that contains the... (6 Replies)
Discussion started by: ncwxpanther
6 Replies

2. Shell Programming and Scripting

How to parse the variable in .mk file?

Hi all, I am passing a variable in .mk file as NEED="TEST=Name WORK=Ps DEL=let" I need to echo and export each variable like TEST, WORK. DEL TEST=Name WORK=Ps DEL=let We have to parse the NEED variable which may contain many elements like TEST, DEL& etc.. Any idea on this... (10 Replies)
Discussion started by: ricky-row
10 Replies

3. Shell Programming and Scripting

Help about parse the variable

I'm using bash the code is QEMU_CMD="qemu-system-x86_64 -smp 2 -m 512 $QEMU_PARAMETER -hda $GUEST_IMAGE -kernel $GUEST_KERNEL -append \"root=/dev/hda rw console=ttyS0,115200 ip=$IP_PARAMETER \" -nographic" echo "..............................." echo "qemu command is... (9 Replies)
Discussion started by: yanglei_fage
9 Replies

4. UNIX for Advanced & Expert Users

How to parse nested variable

Hi, I want to parse nested variable in my script. for exp- c=1 G1='0318' G2='0023' G3='3092' G4='0014' while ;do g=G$c a=$g echo "Group=$g and value=$a" c=`expr $c + 1` done final output are as - --------------------------- Group=G1 and... (4 Replies)
Discussion started by: apskaushik
4 Replies

5. Shell Programming and Scripting

Parse Logfile output variable

<SUMMARY filecount_excluded="0" dirbytes_sent="3367893" dirbytes_hashcache="13275664" ..and so on..> <session numthreads="1" type="avtarbackup" ndispatchers="1" ..and so on..><host numprocs="4" speed="900" osuser="root" name="ashsux01" memory="24545" /><build time="11:04:53" msgversion="13-10" ... (11 Replies)
Discussion started by: Ikon
11 Replies

6. Shell Programming and Scripting

how to parse value of the variable

I have a variable which has a full path to the file, for example : A=/t1/bin/f410pdb Does anybody know the command to parce this variable and assign the result to 3 other variables so each subdirectory name will be in a new variable like this B=t1 C=bin D=f410pdb Many thanks -A (5 Replies)
Discussion started by: aoussenko
5 Replies

7. Shell Programming and Scripting

Parse String from a Variable

Hello, Is there a quick way to parse the values from a variable? The variable has the following sample input: TA= The values of the TA variable is not fixed/hardcoded Basically I need to get the IV_Test and PF_SAPP_FWK values. I created a script that first use sed to remove ,... (3 Replies)
Discussion started by: racbern
3 Replies

8. Shell Programming and Scripting

How do you parse a variable in a bash script?

I have a script I use on my web server (Apache2). I am changing to Lighttpd and need to make a few changes. This is what I use on my apache server #!/bin/bash # accepts 3 parameters: <domain name> <user name> <XXXXXXXX> # domain name is without www (just domain.com) # username would be... (3 Replies)
Discussion started by: vertical98
3 Replies

9. Shell Programming and Scripting

parse variable

I have a variable (it is a date actually -> 2007-01-03) which would be passed in as parameter, what I want is to parse in and put year, month, and day in separate variables, I have tried the following but doesn't work echo $dt | awk -F- '{print $1 $2 $3}' | read y m d Thanks in... (2 Replies)
Discussion started by: mpang_
2 Replies

10. Shell Programming and Scripting

parse a string variable

Hello all, need a little help. I have an input variable such as ARGV which equals something like /use/home/name/script/test.dat I need to be able to get just the "test.dat" (i.e. the file name) at the end of the directory and the directory can be anything and any length. To put it another... (3 Replies)
Discussion started by: methos
3 Replies
Login or Register to Ask a Question