Ubuntu系统的Shell命令及脚本编程

上传人:ji****72 文档编号:37537255 上传时间:2018-04-18 格式:DOC 页数:10 大小:381.50KB
返回 下载 相关 举报
Ubuntu系统的Shell命令及脚本编程_第1页
第1页 / 共10页
Ubuntu系统的Shell命令及脚本编程_第2页
第2页 / 共10页
Ubuntu系统的Shell命令及脚本编程_第3页
第3页 / 共10页
Ubuntu系统的Shell命令及脚本编程_第4页
第4页 / 共10页
Ubuntu系统的Shell命令及脚本编程_第5页
第5页 / 共10页
点击查看更多>>
资源描述

《Ubuntu系统的Shell命令及脚本编程》由会员分享,可在线阅读,更多相关《Ubuntu系统的Shell命令及脚本编程(10页珍藏版)》请在金锄头文库上搜索。

1、UbuntuUbuntu 系统的系统的 ShellShell 命令及脚本编程命令及脚本编程Shell 是 Linux 的命令解释器,是连接用户和内核的桥梁。Linux 命令通过 Shell 传给 内核,内核执行命令并将结果返回给 Shell,Shell 再把结果输出到显示器或其他设备。 常用 Shell 有 bash、csh、ksh,Ubuntu 默认的 Shell 是 bash。一、变量与特殊字符一、变量与特殊字符 1)局部变量:在设定此变量的 Shell 中有效 例 1:设定局部变量 ylsy、显示变量值、取消变量。 zgjwildgrass:$ ylsy=“Yulin Normal Un

2、iversity“ zgjwildgrass:$ echo $ylsy Yulin Normal University zgjwildgrass:$ unset ylsy 2)环境变量:在整个系统环境中有效 查看环境变量 env zgjwildgrass:$ env 常用环境变量说明: SHELL=/bin/bash -当前使用的 shell USER=zgj -当前登录的用户名 PATH=/usr/lib/lightdm/lightdm:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin: /sbin:/bin:/usr/games -命令执行

3、时的搜索路径 PWD=/home/zgj -当前工作目录 LANG=zh_CN.UTF-8 -当前的语系3)参数变量与特殊变量 Shell 命令格式: 命令名 选项 参数 1 参数 2. 参数变量的表示方法: $0:表示执行的程序名 $1-$9:表示传给程序的第 1 个-第 9 个参数 $大于 9 的数字:表示第 10 个、11 个参数. 特殊变量的表示方法: $#:表示参数变量的个数 $*:表示所有的参数变量 $:表示所有参数变量的值 $:当前 Shell 的 PID(进程 ID)值 $?:最近一个执行过的命令的返回值例 2:编写脚本程序,测试参数变量与特殊变量的值 编写脚本程序 myshe

4、ll1.sh: zgjwildgrass:/UbunFiles$ gedit myshell1.sh #!/bin/bash echo $1 $2 echo $0 echo $# echo $ echo $ echo $? 执行脚本程序 myshell1.sh: zgjwildgrass:/UbunFiles$ ./myshell1.sh Hello BoysAndGirls 4)特殊字符 “”(双引号)中出现的 单引号、$、作为特殊字符 zgjwildgrass:/UbunFiles$ version=“Ubuntu 12.04 LTS“ zgjwildgrass:/UbunFiles$ e

5、cho “version is: $version“ version is: Ubuntu 12.04 LTS zgjwildgrass:/UbunFiles$ echo “version is:$version“ version is:$version zgjwildgrass:/UbunFiles$ echo “version is:$version“ version is:Ubuntu 12.04 LTS 二、通配符与正则表达式二、通配符与正则表达式 1)?:匹配一个字符 2)*:匹配多个字符 3):匹配里指定字符范围的任意一个字符 4)! 或:表示不匹配里指定字符范围的所有字符 例 3

6、:显示以 exp 开头,第 4 个字符为数字0-9,扩展名的第 1 个字符不是r-z、第 2 个 字符不是 o 或 x 的所有文件和目录信息。 zgjwildgrass:/UbunFiles$ ls exp0-9*.!r-zR-ZoOxX* exp0.cp exp3.java exp5.1ps exp5a.cs exp5b.ja exp7.cpp exp8.dt exp9.cbp5)正则表达式 grep 正则表达式 filename :显示与 正则表达式 匹配的文件信息。 zgjwildgrass:/UbunFiles$ grep “Happy“ *.* myshell2.sh:echo “H

7、appy Spring Festival!“ myshell2.sh:echo “Happy Spring Festival!“ zgjwildgrass:/UbunFiles$ grep “排序“ *.* exp1.c: printf(“排序前:“); exp1.c: printf(“n 排序后:“); 三、命令的执行顺序三、命令的执行顺序 1) cmd1 cmd2;cmd3;. :连续执行 cmd1,cmd2,cmd3. zgjwildgrass:/UbunFiles$ mkdir testcmd ; cd testcmd ; pwd mkdir: 无法创建目录“testcmd“: 文件已

8、存在 /home/zgj/UbunFiles/testcmd zgjwildgrass:/UbunFiles/testcmd$ 四、四、I/OI/O 重定向与管道重定向与管道 重定向 Linux 使用 0 表示标准输入、1 表示标准输出、2 表示标准错误输出。 可以重新指定输入输出,():表示输出重定向。 zgjwildgrass:/UbunFiles$ ls -l lsubu.txt 2:标准错误输出重定向 zgjwildgrass:/UbunFiles$ cd test 2err.txt zgjwildgrass:/UbunFiles$ cat err.txt bash: cd: test

9、: 没有那个文件或目录 管道(|) 一个命令的输出作为另一个命令的输入。五、五、ShellShell 脚本编程脚本编程 1. Shell 脚本程序的编写 1)脚本的第一行一般写上”#!/bin/bash”,指明此脚本使用 bash 解释执行。 2)如果在一行之前使用 了“#”字符,则该行是注释。2. 脚本程序的执行过程 1)编写脚本:zgjwildgrass:/UbunFiles$ gedit myshell2.sh 2)默认的脚本程序权限为-rw-rw-r-,因此需要修改,添加“执行 x”权限才能执行: zgjwildgrass:/UbunFiles$ chmod 755 myshell2.

10、sh zgjwildgrass:/UbunFiles$ ls -l myshell2.sh -rwxr-xr-x 1 zgj zgj 65 2 月 16 20:36 myshell2.sh 3)执行 Shell 脚本程序 方法 1: zgjwildgrass:/UbunFiles$ ./myshell2.sh 春节快乐! Happy Spring Festival! 方法 2: zgjwildgrass:/UbunFiles$ bash myshell2.sh 春节快乐! Happy Spring Festival! 3. 编写交互式脚本 read -p “字符串” 变量名 例 4:编写一个简

11、单的交互式脚本程序 zgjwildgrass:/UbunFiles$ gedit myshell2.sh zgjwildgrass:/UbunFiles$ bash myshell2.sh 4. 在脚本中使用数值变量和数组 例 5: zgjwildgrass:/UbunFiles$ gedit myshell3.sh zgjwildgrass:/UbunFiles$ bash myshell3.sh 5. 逻辑判断与逻辑表达式 格式一:test 条件格式二: 条件 1)对字符串进行判断 str1 = str2 :相等为真 str1 != str2 :不相等为真 -z str :str 长度为零

12、则为真 -n str :str 长度不为零则为真 注:各选项之间用空格隔开 例 6: zgjwildgrass:/UbunFiles$ gedit myshell4.sh zgjwildgrass:/UbunFiles$ ./myshell4.sh 2)对整数进行判断 int1 -eq int2 :相等为真 int1 -ne int2 :不相等为真 int1 -gt int2 :int1int2 为真 int1 -ge int2 :int1=int2 为真 int1 -lt int2 :int12 and 2=17 3)对文件的类型和属性进行判断 -e file :file 存在为真 -f f

13、ile :file 是一个普通文件为真 -d dir :dir 是一个目录为真 -L file :file 是一个链接文件为真 -r file :file 可读为真 -w file :file 可写为真 -x file :file 可执行为真 注:各选项之间用空格隔开例 8: zgjwildgrass:/UbunFiles$ gedit myshell6.sh zgjwildgrass:/UbunFiles$ ./myshell6.sh hello.java LnkSoftware main.c6. 多分支条件语句 case 格式: case 变量 in value1)command1; va

14、lue2)command2; . *)commandn; esac 注:每个 case 语句块之后用;结束 例 9: zgjwildgrass:/UbunFiles$ gedit myshell7.sh zgjwildgrass:/UbunFiles$ sh myshell7.sh main.c 7. 循环语句 for、while、until 1)for 语句 格式 1:for 变量 in 变量值 1 变量值 2 docommanddone 格式 2:for ( i=1; i=100; i+ )docommanddone注:( 与 )不能用空格分开 例 10: zgjwildgrass:/Ub

15、unFiles$ gedit myshell8.sh zgjwildgrass:/UbunFiles$ bash myshell8.sh 2)while 与 until 语句 格式: while 条件 do command done 注:条件成立时循环执行 command,break 退出循环until 条件 do command done 注:条件不成立时循环执行 command,break 退出循环例 11:分别使用 while、until 循环计算 1+2+.+100 zgjwildgrass:/UbunFiles$ gedit myshell9.sh zgjwildgrass:/UbunFiles$ ./myshell9.sh 1+2+.+100=5050 1+2+.+100=5050 例 12:输入一个算术表达式,输出表达式的结果zgjwildgrass:

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 行业资料 > 其它行业文档

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号