Passing arguments to interactive program through bash script, here document


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting Passing arguments to interactive program through bash script, here document
# 8  
Old 07-17-2014
Which code icon are you clicking? Use this one: Image If that's the one you're clicking, then the editor must have a bug.

I notice that, in your shell, you just type 'ma' but in the program, you give /full/path/to/ma. Does your script have a different PATH than your program? Is it being run by cron or CGI or some other automatic method? Important things may be missing from your environment which ma needs to work.

Also, interactive programs don't always work well with automatic input. Some can, some don't. It might even decide "OK, I don't have a terminal -- this means I shouldn't bother asking questions and just use all-default options". Let's test it. Does this work, typed into your terminal by itself?

Code:
ma <<EOF
H_X.fas
auto
n
/home/multalign/dna.tab

n
msf
y
aligned
l
100.90
EOF

# 9  
Old 07-17-2014
Dear Corona688, the program is executing successfully using the above commands. Below is the terminal output:
Code:
[host@localhost temp]$ ma <<EOF
H_X.fas
auto
n
/home/multalign/dna.tab

n
msf
y
aligned
l
100.90
EOF

Multalin version 5.4.1
Copyright I.N.R.A. France 1989, 1991, 1994, 1996
Published research using this software should cite
Multiple sequence alignment with hierarchical clustering
F. CORPET, 1988, Nucl. Acids Res., 16 (22), 10881-10890

Sequence file:  
Input format (gcg, mul, embl, genbank, auto): (def = auto)  
Other Input parameters (y/n) ?: (def=n) 
Symbol comparison table: (def = blosum62.tab) 
Gap value ? (def = value in Symbol comparison file):   
Other Alignment parameters (y/n) ?: (def=n) 
Output format (msf, mul, doc): (def = msf) 
Other Output parameters (y/n) ?: (def=n) 
Ouput order as (aligned, input)) ?: (def=aligned) 
Save cluster as a drawing or as a list (d/l) ?: (def = l) 
 Consensus levels (default = 90 and 50) ? :  Reading H_X.fas
Sequence #  26
Reading /home/multalign/dna.tab
Saving Configuration.
Clustering with fast
Action successful                                                              
Saving H_X.clu
Aligning
gnl|hbvcds|AB059659_ ..................with gnl|hbvcds|EF157291_ Position #    gnl|hbvcds|AB059659_ ...................with gnl|hbvcds|EU498228_ Position #   gnl|hbvcds|AB059659_ ....................with gnl|hbvcds|FJ356715_ Position #  gnl|hbvcds|AB059659_ .....................with gnl|hbvcds|FJ356716_ Position # gnl|hbvcds|AB059659_ ......................with gnl|hbvcds|HM066946_ Position #gnl|hbvcds|AB059659_ .......................with gnl|hbvcds|HM117850_ Position gnl|hbvcds|AB059659_ ........................with gnl|hbvcds|HM117851_ Positiongnl|hbvcds|AB179747_ ................with gnl|hbvcds|AB059660_ ..Position #    gnl|hbvcds|AB059660_ ...................with gnl|hbvcds|AB059659_ Position #   gnl|hbvcds|AB059659_ ....................with gnl|hbvcds|AB205010_ Position #  gnl|hbvcds|AB059659_ .....................with gnl|hbvcds|HM117851_ Position # gnl|hbvcds|AB059659_ ......................with gnl|hbvcds|AB064315_ Position #gnl|hbvcds|AB059659_ .......................with gnl|hbvcds|AY090454_ .PositionAction successful  2 iteration(s)                                              
Saving H_X.cl2
Saving H_X.msf
[host@localhost temp]$

so it means it should take the commands from the here documents also?
Regards
This User Gave Thanks to biochemist For This Post:
# 10  
Old 07-17-2014
It already is taking it from a here document. Hopefully it should see no difference from this one to one in a script. Though -- I just found documentation for multalin here. It has a command-line mode which should be used instead of cramming input into it.

Code:
ma -c:/home/multalign/dna.tab -k:100.90 H_X.fas

Other options may be needed, I can't test this here, but here's a starting point. Get something that works when typed, then you should be able to script a loop around it.

If all else fails, you can use the here-document as above, but that's not really how it's intended to be used.

Last edited by Corona688; 07-17-2014 at 03:48 PM..
# 11  
Old 07-17-2014
Just an observation...
Your error says Error: Error reading blosum62.tab. ...
Note the period at the end of .......tab. <- Is this correct?
# 12  
Old 07-17-2014
Dear Corona688,
You are awesome and really really thanks for your help. The command line options worked like charm. Below is the sample script i put together for the automatic alignment:
Code:
#!/bin/bash                                                                                                   

for x in H #This has more variable which i will loop like {A..H}
do
    echo $x
    for y in PreS1 PreS2 S X
    do
        /home/multalign/tab/ma -c:/home/multalign/dna.tab -k:100.90 ${x}_${y}.fas
        echo
        echo Done: ${x}_${y}.msf
        echo
    done

done

Kindly suggest me if this need further optimization or everything looks ok syntax wise.

Again thankyou for your help.
Regards
# 13  
Old 07-17-2014
It looks OK, assuming that ma -c:... -k:... file is all you need for options. I don't know that. I would test it with a single operation before bothering to put it in a loop.
# 14  
Old 07-17-2014
Dear Corona688,
I first checked with a single operation including other command-line options and then put it into the loop for all the sequences. So far working good Smilie
Thanks again.
Regards
This User Gave Thanks to biochemist For This Post:
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Beginner at bash scripting - need help with passing arguments

I at the moment, making a simple bash script, capable of setting up an workspace for me, so i don't have to do it manually.. Problem is though i can't seem to provide the bash script any argument, without running into my error checks, checking for input... Here is the code: #!/bin/bash... (7 Replies)
Discussion started by: kidi
7 Replies

2. Shell Programming and Scripting

Passing arguments while running the script

Hi, I have a requirement for creating a MQ (queue) where the inputs has to be passed as arguments. Running the script as below ./hi.sh "Servername" "QueueManagername" "QueuecreationCommand" cat hi.sh echo "Welcome to $1" runmqsc $2 < $3 But the queue creation command is... (9 Replies)
Discussion started by: Anusha M
9 Replies

3. Shell Programming and Scripting

Using here document when passing arguments

I have a script test.sh which reads various inputs from a user. #!/bin/ksh read x read y read z echo x: $x y: $y z: $z # read few more things again read a read b echo a: $a b: $b When i run this script as test.sh << EOF 1 2 EOF (3 Replies)
Discussion started by: ariesb2b
3 Replies

4. Shell Programming and Scripting

Passing arguments to a bash script

Hi, I wanted to pass an argument to a bash script. So that the argument is used inside the awk command inside the bash script. I know the noraml way of passing argument to a bash script as below : sh myScript.sh abc Inside the bash script i can use like this myArg1=$1 wc $myArg But... (8 Replies)
Discussion started by: shree11
8 Replies

5. Shell Programming and Scripting

How to pass arguments to an interactive script?

I've tried to find a solution to this, but I"m stumped. OS - RH Linux 5.9 I have a bash script <myProgram.sh> that gets executed manually and creates a small response file. I'm trying to automate the running of this script. When myProgram.sh runs, it prompts the user to enter 2 pieces of... (13 Replies)
Discussion started by: progkcp
13 Replies

6. Shell Programming and Scripting

Passing arguments from a bash shell script to a command

I'm pretty new to bash scripting and I've found myself writing things like this (and the same with even more nesting): if $CATEGORIES; then if $LABEL_SLOTS; then $pyth "$wd/texify_grammar.py" "$input" "$texfile" "--label-slots" "--categories" "$CATEGORY_LIST" ... (9 Replies)
Discussion started by: burbly
9 Replies

7. Shell Programming and Scripting

passing arguments to external script

Hi! I have a python script that requires arguments and these arguments are file paths. This script works fine when executed like this: /my_python_script "file_path1" "file_path2" (i added quotes as some file names may have weird characters) the issue happens when i launch my python script... (14 Replies)
Discussion started by: gigagigosu
14 Replies

8. Shell Programming and Scripting

How to make bash wrapper for java/groovy program with variable length arguments lists?

The following bash script does not work because the java/groovy code always thinks there are four arguments even if there are only 1 or 2. As you can see from my hideous backslashes, I am using cygwin bash on windows. export... (1 Reply)
Discussion started by: siegfried
1 Replies

9. UNIX for Advanced & Expert Users

How to pass arguments to an interactive script

Hey guys, I have an interactive script that is quite critical to our production environmentl thus updating it to run non-interactively is not an option. The script takes a varying number of arguments, which it ques untill user confirm end of data entry e.g of user input : 1 2 y ... (3 Replies)
Discussion started by: geek.ksa
3 Replies

10. Shell Programming and Scripting

Passing arguments to a script

I've written a script (bgrep) for a more advanced grep command (& attached a cut down version below). I'm trying allow all grep options to be used, or in any combination. The script works fine if I type say bgrep -i -files product it will return a non-case sensitive list of matches for... (3 Replies)
Discussion started by: Kevin Pryke
3 Replies
Login or Register to Ask a Question