4

Можно ли выполнить (из окон) локальный сценарий с аргументами в удаленной системе Linux?

Вот что я получил:

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

Есть ли способ сделать то же самое, но в состоянии дать входные параметры для hello.sh?

Я перепробовал много вещей, в том числе:

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

В этом случае кажется, что plink считает, что input1 и input2 являются его аргументами .. что имеет смысл.

Какие у меня варианты?

3 ответа3

1

Я была такая же проблема.

Вы можете просто написать эту строку

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

Например, мне пришлось запустить скрипт и указать два файла в качестве параметров.

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

0

Более подробное описание (для ssh) смотрите в этом ответе.

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
0

plink не запускает скрипт как скрипт sh ; он просто отправляет свое содержимое в виде отдельных команд, поэтому вы не можете передавать аргументы.

Вы можете обойти это, сказав оболочке интерпретировать ее стандартный ввод, как если бы это был файл:

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .