plink and shell script


 
Thread Tools Search this Thread
Top Forums Shell Programming and Scripting plink and shell script
# 1  
Old 08-26-2008
Error plink and shell script

This is my shell script... test.sh

DIRECTORY=/XYZ/PQR
if [ -f $DIRECTORY/TTT/* ]; then
echo "In test.."
else
echo "lno.."
fi


when i run this script through a putty its output is:
./test.sh: line 2: [: too many arguments
lno..


But when i run the same script using plink its running fine and its output is as expected...

wanted to know why this is happening...
# 2  
Old 08-26-2008
Quote:
Originally Posted by praveen.1
This is my shell script... test.sh

DIRECTORY=/XYZ/PQR
if [ -f $DIRECTORY/TTT/* ]; then
echo "In test.."
else
echo "lno.."
fi


when i run this script through a putty its output is:
./test.sh: line 2: [: too many arguments
lno..

If the wildcard expands to more than one file, you will get that error.

Use a function instead:
Code:
is_file () 
{ 
    for f in "$@";
    do
        [ -f "$f" ] && return;
    done;
    return 1
}

if is_file "$DIRECTORY"/TTT/*; then
...

Quote:
But when i run the same script using plink its running fine and its output is as expected...

There there's something wrong with plink (whatever that is), or you are using it in a situation where the wildcard doesn't expand to more than one file.
# 3  
Old 09-08-2008
There's no reason why a session invoked through putty should behave differently to one invoked through plink. That's very odd...

But as cfajohnson says, using [ -f * ] is generally something to avoid. What are you actually trying to test for?
# 4  
Old 09-08-2008
Quote:
Originally Posted by Smiling Dragon
[ -f * ] is generally something to avoid.

Not generally: always.

Unless there is exactly one matching file, the result will always be wrong (a syntax error, or a false positive).
# 5  
Old 09-08-2008
plink and shell script

if i add the interperet explicitly then its working fine..

#!/bin/sh
DIRECTORY=/XYZ/PQR
if [ -f $DIRECTORY/TTT/* ]; then
echo "In test.."
else
echo "lno.."
fi


This works fine..are these shell dependent?i am using bash shell..
# 6  
Old 09-08-2008
Quote:
Originally Posted by praveen.1
if i add the interperet explicitly then its working fine..

#!/bin/sh
DIRECTORY=/XYZ/PQR
if [ -f $DIRECTORY/TTT/* ]; then
echo "In test.."
else
echo "lno.."
fi


This works fine..

That will not work fine unless there is exactly one file that matches the pattern.
Quote:
are these shell dependent?i am using bash shell..

That is wrong in any and all shells.

Have you tried it on an empty directory?

Have you tried it on a directory containing more than one file?

If will also not be fine if $DIRECTORY contains whitespace.

See the is_file function I posted earlier.
Login or Register to Ask a Question

Previous Thread | Next Thread

10 More Discussions You Might Find Interesting

1. Windows & DOS: Issues & Discussions

Plink is not working

Hi, I am executing below command from Windows run and it is not working "C:\Program Files (x86)\PuTTY\pageant.exe" "D:\abc_key.ppk" -c "C:\Program Files (x86)\PuTTY\plink.exe" -ssh 172.19.11.134 sh ~/touchfile.sh I have created a .ppk file in the directory specified The plink window... (2 Replies)
Discussion started by: NP1
2 Replies

2. Windows & DOS: Issues & Discussions

Plink wait problem

Hi, I have run into a problem to which i can't seem to find any solution, posting here is my last resort. Problem: I am using plink to access my router and run a few configuration commands. When in enter configurations mode, instead of sending next command plink keeps on waiting for manual... (7 Replies)
Discussion started by: zaainabbas
7 Replies

3. Shell Programming and Scripting

Execute Shell script via Plink

I am trying to create a bat file with the below piece of code. plink.exe -l username -pw password -P 22 -2 -ssh servername sudo su - devuser cd /opt/sample echo 3 | ./Script.sh It executes only the first line and not the rest of the lines. Can you please help me where am I doing wrong? (5 Replies)
Discussion started by: lingu85
5 Replies

4. Shell Programming and Scripting

Need help on Plink

Hi All, Iam a newbie to the plink and need your assistance. I have referred some posts but it doesn't helps me much. I have two steps to do. 1. I have a config file which has a list of servers,username and password. 2. I have a shell script in windows which accepts arguments and need to... (0 Replies)
Discussion started by: cskumar
0 Replies

5. Shell Programming and Scripting

PLINK help

Hi Plink users, I am very new in GWAS and decided to use PLINK for this. But I am struggling with file formats. I have one exome data with 200000 SNPs in it. But it is in .txt format. But all the necessary fields are there in different columns. Can you please suggest me how I can create the... (5 Replies)
Discussion started by: smitra
5 Replies

6. AIX

plink shutdown

Hi, I'm testing out this plink script - which will be executed to shutdown multiple LPARs. This consists from: plink -i /path/ssh/cert/ root@host shutdown -F plink -i /path/ssh/cert/ root@host2 shutdown -F The commands gets executed, however it stops on one host, and does not move... (6 Replies)
Discussion started by: ollie01
6 Replies

7. Shell Programming and Scripting

Putty / Plink help

Im trying C:\Program Files\PUTTY\plink.exe mysite.net -l username -pw mypassword -m restart.sh But the login / password are never sent. If I remove the -m restart.sh it will login I need the command inside restart.sh issued after the login password is completed. THanks (6 Replies)
Discussion started by: Greystone
6 Replies

8. Shell Programming and Scripting

Error with Plink

Hello. I have a TCL script that logs in to a server using SSH. As SSH isn't available in windows,I used Plink to do the job.The script works fine on my PC and 2 of my friend's PC. However, on one PC, I get the following error message: "'D:\scripts\plink.exe' is not a Win32 Console... (1 Reply)
Discussion started by: plasmalightwave
1 Replies

9. Shell Programming and Scripting

How we can use plink?

Hi, How we can use use plink to access unix system using Dos. Could someone send me the commands that can be use in Batch file to call unix system using plink utility. Thanks in advance (0 Replies)
Discussion started by: shekhar_ssm
0 Replies

10. UNIX for Dummies Questions & Answers

Plink problem....only works if passwd is in the script

I have a one line bat script run off a XP machine that tar's and compresses some files from a Sol 8 box. It goes something like this (a bit simplified).... plink -pw <passwd> user@host "tar -cvf - -C / tmp/a_file | compress " > a_file.tar.Z So this works....and it's worked many times. But now... (3 Replies)
Discussion started by: Yinzer955i
3 Replies
Login or Register to Ask a Question