查看“Linux-2020-spring-5-6”的源代码
←
Linux-2020-spring-5-6
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看和复制此页面的源代码。
== 复习 == 遗留问题:同时做很多文件的覆盖: 2000/01/2000-01-25.output.txt -> 2000/01/2000-01-25.txt(用前者来覆盖后者) == shell 脚本 == <nowiki> shell脚本我有讲义,可以看。 script脚本 program程序 code代码 解释型语言特点: 1.解释器(interpreter)按语句逐条执行 2.语法/运行时的错误只有执行到的时候才会报 3.优化的余地不大 编译型语言特点 1.编译器一次性读入源代码,编译(compile)每一个.c文件-->.o文件(二进制文件、机器代码),链接(link)*.o --> .exe 2.语法错误立刻报 3.优化可以很充分 一般来说,解释型语言写的程序叫做脚本。(脚本特点:小) shell中数据类型有两种:Integer和String (默认都是String,在没有歧义的情况下不用加引号) ex. v="I love teaching" 赋值语句:x=3(等号左右不能有空格)y=5 $:取值符 用法${}(当不歧义时不用加{}) echo $x 字符串拼接:k=$x$y 数值运算:k=$(($x+$y)) 思考: m="$x+$y=$(($x+$y))" m='$x+$y=$(($x+$y))' *关于shell中的变量 1.默认都是字符串 2.declare -i 整数类型 3.如果做整数运算,会把非整数都理解为0 4.declare +i 把变量的整数属性去掉 5.unset删除一个变量 6.echo $notexistvar 等价于 echo $emptystrvar(空字符串) 7.declare -r var (read-only)等价于 const int i = 1; 8.环境变量:指可以继承给儿子进程的变量 export x 或 declare -x x 注:shell中的继承只能通过环境变量 9.数组变量 a=(A B C 1 2 30) echo ${a[0]} 数组长度:echo ${#a[@]} 增加元素:a[100]=40 总结 a.下标可以不连续 b.下标不合法输出空字符串 c.{#a[@]表示数组长度 10.特殊变量 $变量:当前shell的进程编号 ?变量:返回上个命令的状态编号(上个命令执行成功返回0,未成功返回大于0) 11.把命令结果保存到变量中 a.$(cmd) 例:a=$(ls) b.`cmd` 例:a=`date +%y-%m-%d` test命令 a.判断文件类型、存在、时间比较、权限 b.比较字符串或证书 test -e /bin/ls:-e是否存在 与条件语句合用: if test -e /bin/ls; then echo "exist: /bin/ls"; fi if [ -e /bin/ls ]; then echo "exist: /bin/ls"; fi shell中的循环 while循环 for循环 *上节课思考题: for f in `find . -name '*output*txt'` do newf=`echo $f | sed 's/.output//'`; mv $f $newf; done 思考: 创建100个文件夹命名000-099,每一个文件夹内创建一个txt文件,命名为0.txt-99.txt,每个文件写入一个随机整数(rand命令),将所有的随机数排序(降序),输出格式(printf命令): 9734 : 7.txt 9324 :33.txt 安装:sudo apt-get install rand </nowiki> unset一个变量名时,语法为unset x,注意不能有取值符,unset x[3],表示删除数组x的第3个元素
返回至
Linux-2020-spring-5-6
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
新闻
成员介绍
研究组
科研项目
发表论文
在线演示
工具
链入页面
相关更改
特殊页面
页面信息