Visit Our UNIX and Linux User Community


If then else script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting If then else script
# 1  
Old 08-19-2013
If then else script

Hey , i am trying to automate how we collect logs in isilon.

Code:
echo "This will fetch you the disk details"
echo "which node do you want to check? Enter Values 1-18"
read node
echo $node
if [ $node -eq 1 ]
then
                   echo "You have seclected node 1";
                   for i in 192.168.1.1 ; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done


elif [ $node -eq 2 ];
then
                   echo "You have seclected node 1";
                   for i in 192.168.1.2 ; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done
else
echo "Wrong Choice"
fi

I get the below error when i run this script:

Code:
[QQQQ@XXXX ~]$ ./isitest.sh 
This will fetch you the disk details
which node do you want to check? Enter Values 1-18
1
1
./isitest.sh: line 8: syntax error near unexpected token `do'
./isitest.sh: line 8: `               for i in 192.168.1.1; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done'

Can anyone please help , where i am missing something?

Last edited by Don Cragun; 08-19-2013 at 07:41 PM.. Reason: Added CODE tags.
# 2  
Old 08-19-2013
There is nothing wrong the the code - at least not what is visible.

Can you post the output, first, of:
Code:
cat -v script

And say what OS and shell you are using.
# 3  
Old 08-19-2013
Quote:
Originally Posted by anshulsahdev

Code:
[QQQQ@XXXX ~]$ ./isitest.sh 
This will fetch you the disk details
which node do you want to check? Enter Values 1-18
1
1
./isitest.sh: line 8: syntax error near unexpected token `do'
./isitest.sh: line 8: `               for i in 192.168.1.1; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done'

Can anyone please help , where i am missing something?

I do not see the need to use a for loop range construct here.

Have you been successful running root@192.168.1.1 isi devices manually?
I bet you, you need to surround the remote command within (') marks
Code:
root@192.168.1.1 'isi devices'

# 4  
Old 08-19-2013
for while loop

Thanks Guys, Yes there is no need for the for loop here but it should still work never the less.

Code:
[YYY@XXX ~]$ cat -v isitest.sh
echo "This will fetch you the disk details"
echo "which node do you want to check? Enter Values 1-18"
read node
echo $node
if [ $node -eq 1 ]
then
M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- echo "You have seclected node 1";
    M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- for i in 192.168.1.1; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done


elif [ $node -eq 2 ];
then
M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- echo "You have seclected node 1";
        M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- M-BM- for i in 192.168.1.2 ; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done
else
echo "Wrong Choice"
fi

Yes , i have been successfull in runing manually.

Code:
[YYY@XXX~]$ for i in 192.168.1.1 ; do ssh -o UserKnownHostsFile=/dev/null root@$i isi devices; done
The authenticity of host '192.168.1.1(192.168.1.1)' can't be established.
DSA key fingerprint is 5e:2b:f6:80:b6:62:33:78:f5:6f:00:32:a4:f7:d0:f7.
Are you sure you want to continue connecting (yes/no)? ^C

Smilie

Last edited by anshulsahdev; 08-20-2013 at 12:49 AM..
# 5  
Old 08-19-2013
Was this script created in another OS?
You need to clear the space/hidden characters.
Open the the script file with the current system editor and substitute any amount of white space for a local space, (no tab).
# 6  
Old 08-20-2013
Solved!!

Thanks!! this is resolved. I had initially copied this script for a notepad.
Appreciate the helpSmilie

Previous Thread | Next Thread
Test Your Knowledge in Computers #398
Difficulty: Medium
HP-UX offers operating system-level virtualization features such as hardware partitions, isolated OS virtual partitions on cell-based servers, and HP Integrity Virtual Machines (HPVM) on all Integrity servers.
True or False?

5 More Discussions You Might Find Interesting

1. Shell Programming and Scripting

How to block first bash script until second bash script script launches web server/site?

I'm new to utilities like socat and netcat and I'm not clear if they will do what I need. I have a "compileDeployStartWebServer.sh" script and a "StartBrowser.sh" script that are started by emacs/elisp at the same time in two different processes. I'm using Cygwin bash on Windows 10. My... (3 Replies)
Discussion started by: siegfried
3 Replies

2. Shell Programming and Scripting

Shell script works fine as a standalone script but not as part of a bigger script

Hello all, I am facing a weird issue while executing a code below - #!/bin/bash cd /wload/baot/home/baotasa0/sandboxes_finance/ext_ukba_bde/pset sh UKBA_publish.sh UKBA 28082015 3 if then echo "Param file conversion for all the areas are completed, please check in your home directory"... (2 Replies)
Discussion started by: ektubbe
2 Replies

3. UNIX for Dummies Questions & Answers

Calling a script from master script to get value from called script

I am trying to call a script(callingscript.sh) from a master script(masterscript.sh) to get string type value from calling script to master script. I have used scripts mentioned below. #masterscript.sh ./callingscript.sh echo $fileExist #callingscript.sh echo "The script is called"... (2 Replies)
Discussion started by: Raj Roy
2 Replies

4. Shell Programming and Scripting

Script will keep checking running status of another script and also restart called script at night

I am using blow script :-- #!/bin/bash FIND=$(ps -elf | grep "snmp_trap.sh" | grep -v grep) #check snmp_trap.sh is running or not if then # echo "process found" exit 0; else echo "process not found" exec /home/Ketan_r /snmp_trap.sh 2>&1 & disown -h ... (1 Reply)
Discussion started by: ketanraut
1 Replies

5. Shell Programming and Scripting

create a shell script that calls another script and and an awk script

Hi guys I have a shell script that executes sql statemets and sends the output to a file.the script takes in parameters executes sql and sends the result to an output file. #!/bin/sh echo " $2 $3 $4 $5 $6 $7 isql -w400 -U$2 -S$5 -P$3 << xxx use $4 go print"**Changes to the table... (0 Replies)
Discussion started by: magikminox
0 Replies

Featured Tech Videos