模拟用户输入以不同参数多次调用脚本

时间:2010-07-09 13:40:52

标签: linux unix parameters shell user-input

我必须使用提供的脚本,该脚本在脚本运行时接受用户输入而不是参数。我无法解决这个问题。

脚本的一个例子是:

#!/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 个答案:

答案 0 :(得分:3)

根据您的尝试,您可能看到的内容称为here-document

它应该是这样的:

#!/bin/bash

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

答案 1 :(得分:2)

像这样调用你的脚本:

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

每个参数之间的\ n序列模拟按下的回车键。

答案 2 :(得分:1)

将参数放在每行一个文件中,然后运行

./scriptName.ksh <filename