Linux shell 编写(2)
shell脚本中变量的定义和使用:
1.shell中变量名可以由字母,数字,下划线组成,但数字不能作为变量名的第一个字符。
2.通过赋值符号"="来定义一个变量
如:myname='galley' #字符串类型,不解析任何字符
courses="abcdef" #双引号内部会解析$和反斜杠特殊字符
sum=100;price=1.25
now_date=`date` #反引号执行系统命令
shell中的变量只有字符串类型,所以当你不用引号引起来的时候要保证变量的值不包含特殊符号,如空格,美元,&
3.变量的引用,适用美元符号$加变量名,来引用一个变量的值
如: 定义变量:programe_name="http"
引用变量:echo $programe_name
或者 echo{$programe_name}
4.变量名外面的花括号
是可选的,加花括号是为了帮助解释器识别变量的边界,比如下面情况:
#!/bin/bash
for skill in pop java linux db2
do
echo "i am good at ${skill}Script" #帮助shell解释器识别边界值
done
shell环境变量,局部变量以及预定义变量:
环境变量的定义:
一般指操作系统中运行环境的一些参数,如PATH,PWD,USER,当前使用$shell名称等
常见的环境变量:
PATH:系统路径
HOME:当前用户目录
HISTSIZE:保存历史命令记录的条数
LOGNAME:当前用户登录名
HOSTNAME:主机名称,若应用程序要用到主机名的话,一般是从这个环境变量中取得的
SHELL:当前用户用的是哪种shell
LANG/LANGUGE:和语言相关的环境变量,使用多种语言的用户可以修改此环境变量
MAIL:当前用户邮件存放目录
查看环境变量:
env:显示所有环境变量
echo $PATH:显示某一个环境变量的值
局部变量包括:
1.在shell脚本中由用户自定义的变量
shell脚本中定义的变量作用域是从被定义的地方开始,到shell结束为止,起作用域为本脚本,离开脚本,变量无效
2.在用户登录的shell中定义的变量,重新登录后该变量消失
预定义变量:
预定义变量和环境变量类似,也是shell一开始就定义了的变量,所不同的是,用户只能根据shell的定义来使用这些变量,而不能重新定义它,所有预定义变量都是由$符号和另一个符号组成的,常用的shell预定义变量有:
·$# 位置参数变量
·$* 所有位置参数内容
·$?命令执行后的返回状态。 #0 表示成功,非0表示失败。
·$$ 当前进程的进程号
·$!后台运行的最后一个进程号。 很少用 了解即可
·$0 当前执行的进程名
变量的输入和输出:
1.echo 命令发送数据到标准输出设备,数据采用的是字符串的方式,echo命令可以输出一个变量。
2.echo 两个重要的参数
-e # 识别输出内容里的转义序列
-n #忽略结尾的换行
3.printf和echo的功能类似,printf也可以输出变量,printf还可以按照格式输出变量
注意的是:
1)printf的默认是没有换行的,换行需要自己添加“\n”
2)printf支持格式化输出
read输入:read命令读取标准输入设备的下一行,标准输入中的第一行到换行符前的所有字符都会被读取,并赋值给对应的变量。
可以结合echo一起实现读取并输出的功能
1.1.1.1为键盘输入。
Linux shell 编写(2)的更多相关文章
- Linux shell编写脚本部署pxe网络装机
Linux shell编写脚本部署pxe网络装机 人工安装配置,Linux PXE无人值守网络装机 https://www.cnblogs.com/yuzly/p/10582254.html 脚本实 ...
- Linux shell编写端口扫描脚本
Linux shell编写端口扫描脚本 需求: 扫描特定主机 扫描特定主机的特定端口 扫描特定网段 扫描特定网段中哪些主机开放了特定的端口 源码如下: #/bin/bash #该脚本用于对特定目标主机 ...
- Linux shell 编写(1)
shell脚本的编写步骤 1.创建以.sh为扩展名的文件 touch 2.编辑脚本文件 vim 3.增加脚本文件执行权限 ...
- linux 下shell 编写脚本
linux 下shell 编写脚本: 1.程序结构练习:编写一个脚本,给定一个正整数,计算出这个数所有位的数字之和. 例如:程序给定输入123,那么应该返回1+2+3=6. 2.程序结构练习:编写一个 ...
- Linux shell脚本编程(三)
Linux shell脚本编程 流程控制: 循环语句:for,while,until while循环: while CONDITION; do 循环体 done 进入条件:当CONDITION为“真” ...
- Linux shell脚本编程(一)
Linux shell脚本编程: 守护进程,服务进程:启动?开机时自动启动: 交互式进程:shell应用程序 广义:GUI,CLI GUI: CLI: 词法分析:命令,选项,参数 内建命令: 外部命令 ...
- Linux Shell编程入门
从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来看,Shell是用户与Linux操作系统沟通的桥梁.用户既可以输入命令执行,又可以利用 Shell脚本编程,完成更加复杂的操 ...
- Linux Shell入门(转载)
From:http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用 ...
- 转:Linux Shell编程入门
http://www.cnblogs.com/suyang/archive/2008/05/18/1201990.html 从程序员的角度来看, Shell本身是一种用C语言编写的程序,从用户的角度来 ...
随机推荐
- php5 Array 数组函数
函数 描述 array() 创建数组. array_change_key_case() 把数组中所有键更改为小写或大写. array_chunk() 把一个数组分割为新的数组块. array_colu ...
- 设计模式之——单例模式(Singleton)的常见应用场景(转):
单例模式(Singleton)也叫单态模式,是设计模式中最为简单的一种模式,甚至有些模式大师都不称其为模式,称其为一种实现技巧,因为设计模式讲究对象之间的关系的抽象,而单例模式只有自己一个对象,也因此 ...
- 17:54 思维导图coggle布置好了
钱不是好赚的,要赚钱就要冒险,就会有损失.为了家庭还是旱涝保收一点好,没有现金流什么都是白搭,通过博客来学习也是件不错的是,问题是我现在完全没有想法,比如冒泡算法什么的,没有概念,背不出来,其实可以推 ...
- 第二次作业:找Bug
引子 我真的想了一个小时,上哪里去找bug.我昨天还留意到一个bug,今天就不见了.灵光不断,我想起来了.我就要找大公司的产品的bug... 第一部分 调研, 评测 体验. <腾讯桌球>是 ...
- Eclipse validation
window->preferences->validation 可以取消部分文件的验证,取消build时验证,改为手动验证,提高效率.
- HTML5新增和废弃的标签
一.废弃的标签 以下的 HTML 4.01 元素在HTML5中已经被删除,虽然浏览器为了兼容性考虑都还支持这些标签,但建议使用新的替代标签,矛盾的是老浏览器对新标签的支持度又不够,视项目的受众对象而定 ...
- ubuntu配置默认python版本并安装pip
ubuntu 16.04本身是自带python的,他本身是自带2.X和3.X,两个版本,默认的是2.X.这里记录一下如果在版本间切换以及如何把python版本切换到3.X下的方法. 1.查看Ubunt ...
- 1927. [SDOI2010]星际竞速【费用流】
Description 10年一度的银河系赛车大赛又要开始了.作为全银河最盛大的活动之一,夺得这个项目的冠军无疑是很多人的 梦想,来自杰森座α星的悠悠也是其中之一.赛车大赛的赛场由N颗行星和M条双向星 ...
- Day16 IO流
流的概念和作用 流是一组有顺序的,有起点和终点的字节集合,是对数据传输的总称或抽象.即数据在两设备间的传输称为流,流的本质是数据传输,根据数据传输特性将流抽象为各种类,方便更直观的进行数据操作. Ja ...
- Java反射学习一
Java 反射机制 基本概念 在Java运行时环境中,对于任意一个类,能否知道这个类有哪些属性和方法?对于任意一个对象,能否调用它的任意一个方法? 答案是肯定的. 这种动态获取类的信息以及动态调用对象 ...