在两个shell脚本之间传递多个值

时间:2014-08-27 13:57:48

标签: shell

我有两个shell脚本,即(master,function); master调用函数脚本并尝试将值传递给它。

请注意,function-script是一个交互式脚本;即它等待用户的答案根据答案执行。

因此,要传递一个值,我可以写下以下内容:

echo "string" | ./function-script

问题是我必须传递几个值。有什么建议吗?

3 个答案:

答案 0 :(得分:1)

可以"功能脚本"操作位置参数?如果是这样,您可以将其称为:

./function-script arg1 "argument 2" arg3

然后"功能脚本"将根据需要使用"$1""$2""$3"

如果"功能脚本"只接受stdin的输入,做这样的事情:

printf "%s\n" arg1 "argument 2" arg3 | ./function-script

和"功能脚本"会这样做:

IFS= read -r arg1
IFS= read -r arg2
IFS= read -r arg3

答案 1 :(得分:0)

简单的解决方案:

  • 不要尝试传递多个变量。
  • 只需使用export a=1语法导出主脚本中的所有变量。
  • 然后像普通脚本一样从主人那里调用子脚本
  • 所有变量都将在子脚本中提供。

答案 2 :(得分:0)

使用命令行参数。

./function-script "string" "another string"

如果通过将数据传输到函数脚本来抢占标准输入,则可以很难对函数脚本进行交互操作。

您可以将变量导出为环境变量,但正如常规编程中的全局变量不是一个好主意,因为它们的使用是隐藏的,环境变量也是如此。