我有两个shell脚本,即(master,function); master调用函数脚本并尝试将值传递给它。
请注意,function-script是一个交互式脚本;即它等待用户的答案根据答案执行。
因此,要传递一个值,我可以写下以下内容:
echo "string" | ./function-script
问题是我必须传递几个值。有什么建议吗?
答案 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"
如果通过将数据传输到函数脚本来抢占标准输入,则可以很难对函数脚本进行交互操作。
您可以将变量导出为环境变量,但正如常规编程中的全局变量不是一个好主意,因为它们的使用是隐藏的,环境变量也是如此。