bash返回值

时间:2009-10-01 21:11:26

标签: bash

我喜欢编写另一个脚本调用的脚本或函数(不确定哪一个)。脚本或函数是生成几个值。如何在bash中编写这些内容,以便在另一个脚本中我可以获取脚本或函数返回的值?

特别赞赏的例子!

谢谢和问候!

3 个答案:

答案 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等的约定)划分的字符串?