Chris Geldenhuis wrote:
Ljubomir Ljubojevic wrote:
Tim Dunphy wrote:
hello list!
I have a small shell script that I wrote that is meant to quickly bring down all of my xen instances in a quick and easy manner. Odd thing is, it does work on the command line. But if I put it into a script this happens:
[root@LCENT03:/home/bluethundr/bin] #virtdown
it expects another command to happen. which is odd since all of the text delimiters (" and ') are balanced according to vim. I was wondering if I could have an opinion on why this might be happening. Here's the script:
#/bin/bash
for i in $(virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}'); do /usr/bin/virsh shutdown $i done
thanks in advance! tim
Last thing I saw is "#/bin/bash" instead of "#!/bin/bash". Fix and try.
The rest of suggestions: Add plenty of unique "echo" lines so you can see where it brakes.
Also try $(`virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}'`)
and try sending that same part to variable first and echo the variable so you can see output.
#!/bin/bash
list=$(virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}') echo "the list is=$list"; sleep 2 for i in "$list"; do echo "Running shutdown for item $i"; sleep 2 /usr/bin/virsh shutdown $i echo " shutdown for item $i is complete"; sleep 2 done
and try version with: list=$(`virsh list | grep -v -e Id -e --- -e Domain-0 | awk '{print $1}'`)
Ljubomir _______________________________________________ CentOS mailing list CentOS@centos.org http://lists.centos.org/mailman/listinfo/centos
In cases like this it is also useful to put in a line "set -x" early on in the script. It will then output every stage as it parses each command allowing you to see where the resulys are not as expected.
ChrisG
Yes, you are right. I totally forgot about that. Another way is "bash -x <script name>" to set it to debug mode without editing it.
Ljubomir