shell函数的返回值不能大于255的问题

简介:
之前用Korn Shell写了一个列出指定目录下有多少日志文件的小脚本,用得那个得心应手啊! 
忽然今天,我发现它出错了!显示有多少个日志值时错了!

我晕哦!这个脚本我测了很多次了哦,用了很多次了哦,没有错的嘛!靠!

我反复检查反复检查,不行,还是有问题,明明有260个日志,怎么只报4? 
我把使用find的脚本单独执行,对的啊,260!怎么用函数get_count一调用后,返回的值打印就是4呢? 
相当奇了怪了!

只有看书了。
打开UNIX+Shells+by+Example(4th)跳到Chapter 11. The Interactive Korn Shell,看11.12 function,发现没有讲什么;然后跳到Chapter 12. Programming the Korn Shell,12.8 function,有讲!里面有个Example是使用了返回值的,我仔细看了看,和我的没有什么差别啊! 
就这样一次,两次,我再浏览时,忽然发现:
 
The return value of a function is really just the value of the exit status of the last command in the script unless a specific return command is used. If a value is assigned to the return command, that value is stored in the ? variable. It can hold an integer value between 0 and 255. Because the return command is limited to returning only integer values, you can use command substitution to return the output of a function and assign the output to a variable, just as you would if getting the output of a UNIX command.
 
妈哟!怎么原来就没有发现呢!这可怎么办啊?我只有google了,search “how to return a integer bigger than 255 shell”,有个链接

Advanced Bash Shell Scripting Guide - Complex Functions and ...

跟进去,looking……………………………………………….
哇!发现了!
 
里面的代码真是金玉良言啊!O(∩_∩)O~
 
好了,这个链接来自于Advanced Bash-Scripting Guide.pdf这本书籍,Advanced 还算对得起我这个菜鸟写的程序,我的问题都要到Advanced里面去找啦,自己虚荣下下:)。
解决问题!准备看完UNIX+Shells+by+Example(4th)就看他啦!
Happy...





本文转自 xkdcc 51CTO博客,原文链接:http://blog.51cto.com/brantc/192823,如需转载请自行联系原作者
目录
相关文章
|
6月前
|
Shell
Shell函数
Shell函数
47 1
|
Unix Shell Linux
|
运维 Shell C语言
运维(14)- shell函数
运维(14)- shell函数
52 0
|
27天前
|
Shell Linux C语言
Shell 函数
10月更文挑战第4天
21 7
|
3月前
|
Shell Linux 程序员
在Linux中, 什么是shell函数?如何使用它们?
在Linux中, 什么是shell函数?如何使用它们?
|
5月前
|
Shell 开发者
Shell 函数深入解析与实践
了解 Shell 函数的基础,包括定义、参数传递及返回值。函数定义有多种语法,如 `function func() {...}` 或 `func() {...}`。参数通过 `$1`, `$2` 等访问,`$@` 代表所有参数。`return` 用于返回退出状态码(0-255),非数值数据需用 `echo`。正确获取函数返回值应立即检查 `$?`,例如:`result=$?`。实践中不断探索和学习!
36 1
|
6月前
|
存储 算法 安全
shell 脚本之 函数与数组
shell 脚本之 函数与数组
|
11月前
|
存储 Shell
shell函数介绍
shell函数介绍
57 2
|
6月前
|
运维 Shell Python
第五章 Shell函数与数组
第五章 Shell函数与数组
|
12月前
|
Shell
shell获取命令输出和返回值
shell获取命令输出和返回值
1864 0