我喜欢编写另一个脚本调用的脚本或函数(不确定哪一个)。脚本或函数是生成几个值。如何在bash中编写这些内容,以便在另一个脚本中我可以获取脚本或函数返回的值?
特别赞赏的例子!
谢谢和问候!
答案 0 :(得分:5)
使用Bash变量$ IFS(内部字段分隔符)
dfunc () {echo "first base:second base:third base:home"}
saveIFS=$IFS
IFS=":"
dval=($(dfunc)) # make an array
IFS=$saveIFS # put $IFS back as soon as you can, you'll thank me
echo ${dval[1]}
输出:
二垒
如果使用不会出现在数据中的字符,例如冒号,则可以使用其他字符,例如空格。
don't use backticks使用$()
。
答案 1 :(得分:1)
让生成输出的脚本将其输出发送到stdout,并让调用脚本用反引号将其拉入。示例代码:
script1.sh:
#!/bin/bash
echo 1 2 3 4
script2.sh:
#!/bin/bash
for ITEM in `script1.sh`
do
echo Item = $ITEM
done
答案 2 :(得分:0)
作为由一个众所周知的字符(例如,冒号,$PATH
等的约定)划分的字符串?