0

Here's what I'm trying to do... I want to connect to a command line application and send it instructions from inside a script. I need to do a loop as there are multiple things I want to do. I was able to accomplish this by connecting and disconnecting inside the loop, but I'd rather connect once, do my loop and then disconnect once. Is that possible? Here is my current script. (Note I'm connecting to a queue manager and executing something for each queue defined in a text file).

#!/usr/bin/ksh
if [ $# -lt 2 ]
then
		echo "USAGE: $0 qm queue_file"
		exit 1
fi

qm=$1
file=$2
if [ ! -r $file ]
then
		echo "${file} does not exist...."
		exit 1
fi
cat ${file} | while read queueName
do
		runmqsc ${qm}<<!
		display ql(${queueName}) CURDEPTH
		end
!
done

(So basically, the 'runmqsc' should only be executed once and the 'end' should only be executed once...)

1
Contributor
1
Reply
2
Views
12 Years
Discussion Span
Last Post by winbatch
0

I came up with a workaround (which is to have it create a different script and then run that script). Let me know if there is a better way:

#!/usr/bin/ksh

if [ $# -lt 2 ]
then
        echo "USAGE: $0 qm queue_file"
        exit 1
fi


qm=$1
file=$2

if [ ! -r $file ]
then
        echo "${file} does not exist...."
        exit 1
fi

if [ ! -r run.sh ]
then
        \rm run.sh
fi
echo "runmqsc ${qm}<<!" > run.sh
cat ${file} | while read queueName
do
        echo "display ql(${queueName}) CURDEPTH">> run.sh
done
        echo "end" >> run.sh
        echo "!" >> run.sh
chmod 777 run.sh
run.sh

Edited by pyTony: fixed formating

This topic has been dead for over six months. Start a new discussion instead.
Have something to contribute to this discussion? Please be thoughtful, detailed and courteous, and be sure to adhere to our posting rules.