Hi,
I'm using a while loop for a given command "bowtie2" with several parameters.
so the $args is actually edited to feed two parameters "-1" and "-2"
For the parameter "--un-conc-gz" I was trying to feed it by editing with sed the $arg,
to feed iteratively "--un-conc-gz" with this
Can I do this? Do I need a loop within the loop, if so how?
P.S. the sed editing is OK, no need to focus there.
Many thanks in advance.
---------- Post updated at 04:15 PM ---------- Previous update was at 10:37 AM ----------
Update, I added the echo,
but I get an error message
Perhaps you could simplify this and show us what you are trying to achieve for the call to bowtie and describe the inputs (file list etc.) and what you want it to end up calling it with. It is a little hard work to decipher your code without any design or comments and I worry about missing something vital.
Can you just explain the logic you use to get the bowtie calls?
OK, I'll try to simplify with an example and remove the non essential for the question.
Thanks.
---------- Post updated at 05:19 PM ---------- Previous update was at 04:50 PM ----------
Using while loop for a given command with several parameters,
so the arguments is actually edited to feed two parameters "-1" and "-2"
For the command parameter "--un-conc-gz" I was trying to feed it by reediting the $arg with sed,
and I manage to get, file_a, file_b and file_c but I guess is not doing it iteratively with the $args.
So it would perfom the following commands
Hope this is more clear!
If all the commands to run are based with the 1 and 2 effectively being literal, could you do this:-
If it displays what you want, take out the echo and double quotes.
If I've missed the point, let me know where I've gone wrong and I will have another think.
You may want to write a Perl wrapper with the YAML library. Perl and YAML are really good at reading configuration files. You would then have a configuration file with all of the parameters that you need to make the bowtie2 call, you can parse all of the inputs and more simply change the inputs to what you need and make it work. It would probably be easier to read and understand then the approach you are taking. etc..etc..
Here is the install page for YAML. I am using Perl and YAML to build a software installer. The customer will only need to provide the response file to make it work. Which is much easier than handling each parameter separately. And I can directly reference any parameter as $yaml_hash->{field_name}.
@rbatte1
Seems perfect, I'll try it later on.
Update you on the results later on.
Many thanks!
---------- Post updated 07-11-14 at 11:46 AM ---------- Previous update was 06-11-14 at 05:51 PM ----------
@rbatte1
It works! After some slight changes (in bold) because of my files names
it gives this expected output:
@gandolf989
Thanks for the suggestion, actually the command is already a perl wrapper.
That is away ahead for my state of knowledge, hope to get there some day...
This User Gave Thanks to sargotrons For This Post:
Store args passed in array but not the first 2 args.
# bash
declare -a arr=("$@")
s=$(IFS=, eval 'echo "${arr}"')
echo "$s"
output:
sh array.sh 1 2 3 4 5 6
1,2,3,4,5,6
Desired output:
sh array.sh 1 2 3 4 5 6
3,4,5,6 (2 Replies)
Hi,
Can you please hint me how to achieve the below?
Input:
$./script.sh start 1 2
Internally inside the script i want to set a single variable with $2 and $3 value?
Output:
CMD=$1
ARGS=$2 $3
--VInodh (10 Replies)
Hi,
i have a perl script named test.pl. It is executed as
cat *.log|test.pl
i need the complete command line args. I tried using basename $0 but im getting test.pl only but not cat *.log...
Can anyone help me on this.
Thanks in advance (3 Replies)
I have this code, I thought it would automatically know the args sent to script when called from shell. But it seems to not see any...
main script:
. args
. errors
. opt
. clean
dbfile=""
opfile=""
# calls function in script below
chkarg
#check commands (2 Replies)
Hi,
I have to store all the command line arguments into an array.
I have the following code.
**********************
#! /bin/sh
set -A arr_no_updates
i=1
while
do
arr_no_updates=$($i)
echo ${arr_no_updates}
i=$(($i+1))
done**************** (1 Reply)
I have this while loop and at the end I am trying to get it to tell me the last argument I entered. And with it like this all I get is the sentence with no value for $1. Now I tried moving done after the sentence and it printed the value of $1 after every number. I don't want that I just want... (2 Replies)
I am trying to print command line arguments one per second. I have this
while
do
echo "6"
shift
echo "5"
shift
echo "4"
shift
echo "3"
shift
echo "2"
shift
echo "1"
shift
done (2 Replies)
My program usage takes the form for example;
$ theApp 2 "one or more words"
i.e. 3 command line arguments; application name, an integer, some text
My code includes the following 4 lines:
int anInteger;
char words;
sscanf(argv, "%d", &anInteger);
sscanf(argv, "%s", &message);
Based... (2 Replies)