查看“Linux-2020-spring-5-13”的源代码
←
Linux-2020-spring-5-13
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
== 复习并举例 == *shell中变量的定义 注意变量两边不能有空格 *复杂语句 *shell脚本(求和的例子) <nowiki> #!/bin/bash sum=0 for ((i=1;i<101;i=i+1)); do sum=$(($i+$sum)) done echo $sum </nowiki> == shell脚本的运行方式 == 1、bash x.sh 2、chmod +x x.sh ./x.sh *“#!/bin/bash ”的作用 1、告诉shell这个文件要用什么命令打开,进而解释(或运行) 2、告诉shell用哪种shell(bash/csh/sh/ksh...)运行文件。 PATH环境变量,不建议将当前目录'.'放到PATH中 和awk是类似的 == shell中函数的定义和使用== 函数传参 $# -----参数的个数 $* -----字串 $0 -----第0个参数 $1 -----第1个参数 $@ -----数组 $? -----获取返回值 <nowiki> #!/bin/bash # 注意视频中写错了,少了感叹号! function sum() { echo $# echo $* echo $0 echo $1 } sum 1 2 7 'a' # 注意函数调用,不要括号 </nowiki> === 函数返回值 === [http://c.biancheng.net/view/2863.html 随便找到的一个网址] Shell 函数的返回值(return语句)只能是一个介于 0~255 之间的整数,其中只有 0 表示成功,其它值都表示失败。 如果函数体中没有 return 语句,那么使用默认的退出状态,也就是最后一条命令的退出状态。如果这就是你想要的,那么更加严谨的写法为: return $? $?是一个特殊变量,用来获取上一个命令的退出状态,或者上一个函数的返回值 === 函数的运算结果如何保存下来 === 通过return不可以 存到全局变量 shell很简单、很笨,语法更简单 徐嘉诚同学找到的第三种做法: http://tldp.org/LDP/abs/html/assortedtips.html#RVT 函数最后echo $result result=`function_name` === 局部变量 vs. 全局变量 === shell有没有这个概念? 函数内部定义的变量的生命周期是多少 === 如何传递数组变量作为参数 === == 命令行参数 == 给shell脚本传递参数 运行时指定shell脚本的命令行参数 例如:./a.sh 'abc' 232 类似于ls /bin C语言中是int main(int argc, char *argv[]),通过argc和argv来实现的。 参数的含义(和函数参数是一致的) $# -----参数的个数 $* -----字串 $0 -----第0个参数 $1 -----第1个参数 $@ -----数组 $? -----获取返回值 <nowiki> #!/bin/bash # 注意视频中写错了,少了感叹号! # 假设这个shell脚本的文件名是:a.sh echo $# echo $* echo $@ echo $0 echo $1 </nowiki> 执行过程: $ ./a.sh 'abc' 123 93 -2 # 注意,'./a.sh'是第0个参数 == examples == 感兴趣的同学可以深入理解 * [http://hlt.suda.edu.cn/index.php/Linux-2018-spring-run0.sh run0.sh函数] * [http://hlt.suda.edu.cn/index.php/Linux-2018-spring-run1.sh run1.sh函数] * [http://hlt.suda.edu.cn/index.php/Linux-2018-spring-run2.sh run2.sh函数] * [http://hlt.suda.edu.cn/index.php/Linux-2018-spring-run3.sh run3.sh函数] == C语言中的多维矩阵(高效实现) == 特别值得学习!我是从一本书上偶然看到的,然后用到我的代码上,把本来5000行的代码,简化到大概1500行,而且效率还有明显的提高,至少提高1倍。 [http://hlt.suda.edu.cn/index.php/Linux-2018-spring-main main.c函数] == 问题讨论 == === 字符串赋值 === 周京晶同学的问题讨论 x='aaaa bbbb' echo $x # 会合并空格 echo ${#x} 窦晨辉同学搞定: 是echo的问题,printf也一样,自作主张。 实际上字符串的长度没有改变
返回至
Linux-2020-spring-5-13
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
新闻
成员介绍
研究组
科研项目
发表论文
在线演示
工具
链入页面
相关更改
特殊页面
页面信息