Имитация пользовательского ввода для вызова сценария несколько раз с различными параметрами - PullRequest
2 голосов
/ 09 июля 2010

Мне нужно использовать предоставленный скрипт, который принимает пользовательский ввод во время работы скрипта вместо параметров. Я не могу обойти это.

Пример скрипта:

#!/bin/bash

echo "param one"
read one
doSomething

echo "param two"
read two
doSomething

echo "param three"
read three
doSomething

echo "param four"
read four
doSomething

echo "param five"
read five
doSomething

Я бы хотел, чтобы можно было вызывать этот сценарий и предоставлять параметризованный ввод, что-то вроде:

./scriptNameWrapper.ksh 1 22 333 4444 55555

Я пробовал гуглить, или я не правильно задаю вопрос, или, скорее всего, я не вижу дрова для деревьев.

Я пробовал это, но это не работает:

#!/bin/bash

./scriptName.ksh
<<$1
<<$2
<<$3
<<$4
<<$5

Я явно не эксперт по * nix, но я уверен, что видел это раньше, я просто не могу найти никаких примеров. Это начинает расстраивать, и любая помощь будет принята с благодарностью.

Ответы [ 3 ]

3 голосов
/ 12 июля 2010

То, что вы, вероятно, видели, основываясь на вашей попытке, называется здесь-документом .

Это должно выглядеть так:

#!/bin/bash

./scriptName.ksh <<-END_PARAMS
    $1
    $2
    $3
    $4
    $5
END_PARAMS
2 голосов
/ 09 июля 2010

Назовите свой сценарий так:

echo -e "Param1\nParam2\nParam3" | ./scriptName.ksh

Последовательность \ n между каждым параметром эмулирует нажатие клавиши ввода.

1 голос
/ 09 июля 2010

Поместите ваши параметры в файл по одному на строку, затем запустите

./scriptName.ksh <filename
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...