Execute local script requiring arguments on Linux via plink

4

Is it possible to execute (from windows) a local script with arguments on a remote linux system?

Here's what I got:

plink 1.2.3.4 -l root -pw mypassword -m hello.sh

Is there a way to do this same thing, but able to give input parameters to hello.sh?

I've tried many things, including:

plink 1.2.3.4 -l root -pw mypassword -m hello.sh input1 input2

In this case it seems that plink thinks that input1 and input2 are its arguments.. which makes sense.

What are my options?

c_maker

Posted 2011-11-16T23:18:08.907

Reputation: 141

Answers

1

I had the same issue.

You can simply write this line

plink 1.2.3.4 -l root -pw pass " myscript.sh arg1 arg2"

For example, I had to run a script and give two files as parameters.

plink 1.2.3.4 -l root -pw pass " myscript.sh path/to/file1 path/to/file2"

Hari

Posted 2011-11-16T23:18:08.907

Reputation: 11

I don't think is is the same issue OP described, in this case the executed script resides on the remote machine, doesn't it? – martonbognar – 2018-07-27T12:14:02.463

0

For a more detailed description (for ssh) see this answer.

C:>type script.sh
#!/bin/bash
cd /home/user
echo "hello ${1:-}" > hello.txt

C:>plink user@host -pw password "bash -s" < script.sh "world"

C:>plink user@host -pw password "cat /home/user/hello.txt"
hello world

martonbognar

Posted 2011-11-16T23:18:08.907

Reputation: 131

0

plink does not run the script as a sh script; it just sends its contents as separate commands, so there is nothing you could pass arguments to.

You could get around this by telling the shell to interpret its stdin as if it was a file:

plink -T ... $SHELL /dev/stdin arg1 arg2 arg3 < hello.sh

user1686

Posted 2011-11-16T23:18:08.907

Reputation: 283 655

Does not work for me. Am I supposed to replace '$SHELL' with something? is arg1 supposed to be the name of the file? I've tried all kinds of combinations, nothing seems to work. My hello.sh looks like this: '#!/bin/bash echo "Your argument is "$1'. – c_maker – 2011-11-17T00:01:56.773

@c_maker: Try the updated version; and no, $SHELL will be automatically expanded on the server, and arg1 is the first argument you want to give. – user1686 – 2011-11-17T00:58:04.043