2010-07-09 25 views
2

我必须使用提供的脚本,该脚本在脚本运行时取用户输入而不是参数。我无法解决这个问题。模拟用户输入以多次调用脚本使用不同的参数

脚本的一个例子是:

#!/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

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

它应该是这样的:

#!/bin/bash 

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

把你PARAMATERS在每行一个文件,然后运行

./scriptName.ksh <filename 
2

打电话给你的脚本是这样的:

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

各参数之间的\ n序列模拟输入键被按下。

相关问题