Content #
可以将函数的输出保存到shell变量中:
result=$(dbl)
这个命令会将dbl函数的输出赋给$result变量。来看一个例子:
$ cat test5b
#!/bin/bash
# using the echo to return a value
function dbl {
read -p "Enter a value: " value
echo $[ $value * 2 ]
}
result=$(dbl)
echo "The new value is $result"
$
$ ./test5b
Enter a value: 200
The new value is 400
$
$ ./test5b
Enter a value: 1000
The new value is 2000
$
新函数会用echo语句来显示计算结果。该脚本会获取dbl函数的输出,而不是查看退出状态码。
这个例子演示了一个不易察觉的技巧。注意,dbl函数实际上输出了两条消息。 read命令输出了一条简短的消息来向用户询问输入值。bash shell脚本非常聪明,并不将其作为STDOUT输出的一部分,而是直接将其忽略。如果用echo语句生成这条消息来询问用户,那么它会与输出值一起被读入shell变量。
这种方法还可以返回浮点值和字符串,这使其成为一种获取函数返回值的强大方法。
From #
Linux命令行与shell脚本编程大全