首页 技术 正文
技术 2022年11月15日
0 收藏 700 点赞 3,893 浏览 2185 个字

不看笔记,长时间不用自己都忘了,还是得经常看看笔记啊。

一个简单的shell程序

shell结构1、#!指定执行脚本的shell2、#注释行3、命令和控制结构创建shell程序的步骤第一步:创建一个包含命令和控制结构的文件第二步:修改这个文件的权限使它可以执行。 使用chmod u+x第三步:执行shell sh /test/example.sh Shell变量变量:是shell传递数据的一种方法,用来代表每个取值的符号名shell有两类变量:临时变量和永久变量临时变量是shell程序内部定义的,其使用范围仅限于定义它的程序,对其它程序不可见。包括 用户自定义变量、位置变量。永久变量是环境变量,其值不随shell脚本的执行结束而消失。  用户自定义变量用户定义的变量有字母或下划线开头,由字母,数字或下划线序列组成,并且大小写字母意义不 同,永久变量长度没有限制。在使用变量值时,要在变量名前加上前缀“$”  设置和使用变量设置变量:习惯上用大写字母来命名变量,变量名只能以字母表中的字符开头,不能用数字。变量赋值:赋值号”=”两边应没有空格定时赋值,NUM=1将一个命令的执行结果赋给变量,如:TIME=`date`将一个变量赋给另一个变量,如:A=$B使用echo 命令查看变量值。例如:echo $A列出所有变量:set包含多个字的变量$NAME=Mike Ron运行时出错,应该为:$NAME=”Mike Ron”或$NAME=’Mike Ron’单引号和双引号的区别是,单引号里的变量不会被解析。删除变量:unset NAME 位置变量和特殊变量shell解释执行用户命令时,将命令行的第一个部分作为命令名,其他部分作为参数。由出现在 命令行上的位置确定的参数称为位置参数。例如:ls -l file1 file2 file3$0这个程序的文件名ls -l$n这个程序的第n个参数值,n=1–9 特殊变量$*这个程序的所有参数$#这个程序参数的个数$$这个程序的PID$!执行上一个后台命令的PID$?执行上一个命令的返回值 0代表成功   非0代表不成功  shell命令read命令:从键盘读入数据,赋给变量如:red USERNAMEread的例子:#!/bin/shread first second thirdecho “您输入的第一个参数$first”echo “您输入的第一个参数$second”echo “您输入的第一个参数$third” expr命令shell变量的算术运算expr命令:对整数型变量进行算术运算例如:expr 3 + 5   #加号左右必须有空格expr $varl – 5expr $v1 / $v2expr $v1 \* 10复杂的expr命令复杂的运算 expr ` expr 5 + 7 ` / $var1将运算结果赋予变量:var4=` expr $va1 / $var2 `例:#!/bin/sha=10b=20c=30v1=`expr $a + $b + $c`echo $v1v2=`expr $c / $b`echo $v2v3=`$a \* $b`v4=`expr $a + $c / $b`echo $v4 变量测试语句变量测试语句:用户测试变量是否相等、是否为空、文件类型等格式:test 测试条件测试范围:整数、字符串、文件字符串测试:test str1=str2     测试字符串是否相等test str1!=str2    测试字符串是否不相等test str1    测试字符串是否不为空test -n str1       测试字符串是否不为空test -z str1       测试字符串是否为空整数测试:test init1 -eq int2  测试整数是否相等test init1 -ge int2  测试int1是否>=int2test init1 -gt int2  测试int1是否>int2test init1 -le int2  测试int1是否<=int2test init1 -lt int2  测试int1是否<int2test init1 -ne int2  测试整数是否不相等文件测试test -d  file   指定文件是否目录test -f  file   指定文件是否常规文件test -x  file   指定文件是否可执行test -r  file   指定文件是否可读test -w  file   指定文件是否可写test -a  file   指定文件是否存在test -s  file   指定文件是否非0变量测试语句一般不单独使用,一般作为if语句的测试条件,如:if test -d $1 then…..fi变量测试语句可用[]进行简化,如test -d $1 等价于[-d $1]      #!/bin/sh#比较两个字符串是否相等的程序read -p “请输入第一个字符串:” str1read -p “请输入第二个字符串:” str2  if [ -n $str1 ] ; thenecho “您输入的第一个字符串不为空,值为:” $str1elseecho “您输入的第一个字符串为空”fi if [ -n $str2 ] ; thenecho “您输入的第二个字符串不为空,值为:” $str2elseecho “您输入的第二个字符串为空”fi if test $str1 = $str2 ; thenecho “两个字符串相等”elseecho “两个字符串不相等”fi  1、查看当前系统的环境变量和自己定义的变量set命令2、删除一个变量unset 变量名例如:unset NAME

相关推荐
python开发_常用的python模块及安装方法
adodb:我们领导推荐的数据库连接组件bsddb3:BerkeleyDB的连接组件Cheetah-1.0:我比较喜欢这个版本的cheeta…
日期:2022-11-24 点赞:878 阅读:8,910
Educational Codeforces Round 11 C. Hard Process 二分
C. Hard Process题目连接:http://www.codeforces.com/contest/660/problem/CDes…
日期:2022-11-24 点赞:807 阅读:5,435
下载Ubuntn 17.04 内核源代码
zengkefu@server1:/usr/src$ uname -aLinux server1 4.10.0-19-generic #21…
日期:2022-11-24 点赞:569 阅读:6,250
可用Active Desktop Calendar V7.86 注册码序列号
可用Active Desktop Calendar V7.86 注册码序列号Name: www.greendown.cn Code: &nb…
日期:2022-11-24 点赞:733 阅读:6,061
Android调用系统相机、自定义相机、处理大图片
Android调用系统相机和自定义相机实例本博文主要是介绍了android上使用相机进行拍照并显示的两种方式,并且由于涉及到要把拍到的照片显…
日期:2022-11-24 点赞:512 阅读:7,693
Struts的使用
一、Struts2的获取  Struts的官方网站为:http://struts.apache.org/  下载完Struts2的jar包,…
日期:2022-11-24 点赞:671 阅读:4,731