queue items...


 
Thread Tools Search this Thread
Top Forums UNIX for Dummies Questions & Answers queue items...
# 1  
Old 08-10-2010
queue items...

Hi everyone.

I have a lot of programs i want to run on some data files, they need to be done sequentially. Often the output from one program is the input for the next.

e.g

$ progA data1 > data1.A
$ progB data1.A > data1.AB
$ progC data1.AB > data1.ABC

repeat on data2, 3, 4, 5, 6 etc

bash seems to limit the number of times I issue commands whilst it is running the first. so the question: Is there any smart way to queue commands up, or would a simple script be better (I really am a beginner and have no idea how to do this)?

Thanks a lot, J
# 2  
Old 08-11-2010
You've hit the nail straight on -- a simple script would be perfect. Not only does it allow you the freedom to run one command to accomplish several tasks, its easy to repeat the process if that is needed.

Excuse me if you know this, but on the off chance that you dont....
Edit a file with vi, or similar editor, add your commands in the order you desire, and save the file. You'll need to make the file executable, and once that is done you can run your script.

Code:
#!/usr/env/bin/ bash
set -e
command1 input-file >file1
command2 <file1 >file2
command3 <file2 >output

To make it executable, use the chmod command (assuming the filename is myscript.bash):

Code:
chmod 755 myscript.bash

Then you can run it by typing 'myscript.bash' on the command line.

The 'set -e' command causes the script to exit immediately on error; prevents command2 and command3 from being executed if command1 fails. You can do your own error checking, and maybe recovery, but the 'set -e' is the easiest. If these commands are long running, I like having an echo message in the script letting me know what is currently running:

Code:
#!/usr/env/bin/ bash
set -e
echo "$(date) starting c1" >&2
command1 input-file >file1
echo "$(date) starting c2" >&2
command2 <file1 >file2
echo "$(date) starting c3" >&2
command3 <file2 >output
echo "$(date) script complete"

These 2 Users Gave Thanks to agama For This Post:
# 3  
Old 08-11-2010
had to change

#!/usr/env/bin/ bash

to

#!/bin/bash

but worked great thanks.

how could I change the script so I can input the name of x on the command line?

myscript.bash

input-file >file_x_1
file_x_1 >file_x_2

and so on..

Thanks very much, J
# 4  
Old 08-11-2010
Quote:
Originally Posted by Jay-pea
had to change
#!/usr/env/bin/ bash
to
#!/bin/bash
Oh how embarassing!! That should have been
Code:
#!/usr/bin/env bash

Guess I've taken fatfingering to a new level Smilie

Quote:
Originally Posted by Jay-pea
how could I change the script so I can input the name of x on the command line?
Use $1 instead of x in your filename.

Code:
file_${1}_1

You'll need to be careful as the underbar (_) character is treated as a part of a variable name, so put the variable name in {} to keep things right. In this case $1 is the first argument on the command line after the command name. So if you entered `myscript foo` your filenames would be `file_foo_1` and so on. You might also want to test to ensure that a parameter was entered on the command line:

Code:
if [[ -z $1 ]]
then
    echo "missing command line parameter"
    exit 1
fi

The test causes the error message and immediate exit from the script if the variable $1 is empty (not entered on the command line).
This User Gave Thanks to agama For This Post:
# 5  
Old 08-12-2010
thanks, this is so cool. I can write a script and leave my analysis running overnight now. Thanks again. J
 
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. UNIX for Beginners Questions & Answers

Foreach not looping through all items

Hello, very new to this and have to use tcsh (not a choice at the moment). I need to convert files within sub directories. My foreach loops don't work. Directories are as follow: sub-001 --ses-T1 ---- anat --------File.nii --ses-T2 ----anat -------File.nii sub-002 and so on. ... (2 Replies)
Discussion started by: IlaBert
2 Replies

2. Shell Programming and Scripting

Parsing through a list of items

Hi there, Here is my checklist of items, 4.1.1 Alerter 4.1.2 Client Services for Netware 4.1.3 Clipbook 4.1.4 Fax Service 4.1.5 File Replication 4.1.6 File Services for Macintosh 4.1.7 FTP Publishing Service 4.1.8 Help and Support 4.1.9 HTTP SSL 4.1.10 IIS Admin Service ... (1 Reply)
Discussion started by: alvinoo
1 Replies

3. Shell Programming and Scripting

Moving items to a new line

Hi, Let's I have the following strings (md5): 07177edf8261d28c6a003e583fcbe38c 0717c0037b3a20fc0f0998e673f228d5 0717d611a5d24374628b98e17fd00977,0717d611a5d24374628b98e17fd00977 07189a18afdae558bb5aadfe602e4a91 0719e97d481c239667f38a3e166bed74 071af3225fe50a1fdbb42c43aac313cc... (4 Replies)
Discussion started by: talfiq
4 Replies

4. Programming

Removing Items In A ListView

Hi everyone! So I have a listView on my Form named "officeView" I already have the code to add and update info into it, but Im having troubles deleting items out of it. :/ Now I know how to delete an Item from the listView, but I want the item before the deleted item to become automatically... (0 Replies)
Discussion started by: romeo5577
0 Replies

5. Shell Programming and Scripting

Matching 2 items in a string

Little lost here, I am trying to search a line for both values after the $ signs. My ultimate goal is to get percertage. <?php $string = "Something on sale for $4 and orginal price $10"; $strstr =. strstr($string, '$'); $strrchr =. strrchr($string, '$'); echo "$strstr<br>"; echo... (1 Reply)
Discussion started by: mrlayance
1 Replies

6. Shell Programming and Scripting

Help needed regarding first 3 items in the list

Hi, I've a list in the following format: Empdept filedetails buildingNo Area AAA 444 2 juy AAA 544 2 kui AAA 567 4 poi AAA 734 5 oiu AAA 444 ... (2 Replies)
Discussion started by: skpvalvekar
2 Replies

7. UNIX for Dummies Questions & Answers

Searching multiple items

Hi, I'm a complete newbie so bear with me. I have a directory (and sub-dirs) full of .doc, .xls files. What I'm trying to do is do a single search within the files (i.e. within each .doc etc) for occurrences of multiple items e.g. apples, pears, grapes, bananas. Basically I'd provide a... (4 Replies)
Discussion started by: kainfs
4 Replies

8. Shell Programming and Scripting

awk between items including items

OS=HP-UX ksh The following works, except I want to include the <start> and <end> in the output. awk -F '<start>' 'BEGIN{RS="<end>"; OFS="\n"; ORS=""} {print $2} somefile.log' The following work in bash but not in ksh sed -n '/^<start>/,/^<end>/{/LABEL$/!p}' somefile.log (4 Replies)
Discussion started by: Ikon
4 Replies

9. Gentoo

Linux FAQ Items

Hello Guys, Sometimes it is necessary to add more swap space after installation. For example, you may upgrade the amount of RAM in your system from 64 MB to 128 MB, but there is only 128 MB of swap space. It might be advantageous to increase the amount of swap space to 256 MB if you perform... (11 Replies)
Discussion started by: prashant_ohol
11 Replies

10. Shell Programming and Scripting

Comparing items in 2 files

Hi, I have 2 files with contents in them and I need to compare each item in each file. File1: item4 item5 File2: item2 item3 item5 item6 The items names can be of different lengths. If the items in the File1 are not in File2, delete the missing item in File1. The resulting... (12 Replies)
Discussion started by: ReV
12 Replies
Login or Register to Ask a Question