位置: 编程技术 - 正文

深入浅出Shell编程 Shell变量介绍(深入浅出python中文第二版pdf)

编辑:rootadmin

&#;深入浅出Shell编程: Shell 变量 &#;1 系统变量 &#;2 Shell用户变量 ■2.1 基础 ■2.2 使用技巧 ■2.3 shell 中的数组 &#;3 shell 环境变量 先不要管Shell的版本,来看看Shell 变量,在Shell中有三种变量:系统变量,环境变量,用户变量。其中用户变量在编程过程中使用最多,系统变量在对参数判断和命令返回值判断会使用,环境变量主要是在程序运行的时候需要设置。 1 系统变量 Shell常用的系统变量并不多,但却十分有用,特别是在做一些参数检测的时候。下面是Shell常用的系统变量 表示方法 描述 $n $1 表示第一个参数,$2 表示第二个参数 ... $# 命令行参数的个数 $0 当前程序的名称 $? 前一个命令或函数的返回码 $* 以"参数1 参数2 ... " 形式保存所有参数 $@ 以"参数1" "参数2" ... 形式保存所有参数 $$ 本程序的(进程ID号)PID $! 上一个命令的PID 其中使用得比较多得是 $n $# $0 $? ,看看下面的例子: 下面是运行结果: -bash-2.b$ ./chapter2.1.sh winter stlchinathe number of parameter is 2 the return code of last command is 0the script name is ./chapter2.1.sh the parameters are winter stlchina $1 = winter ; $2 = stlchina 这个例子太简单了,一点也不实用,下面来个实用的,如果你看不懂,没有关系,后面的内容会有详细解释。 上面的例子中使用了$0 $1 $2 $# $? 等变量,下面是程序的解释: 1.判断运行参数个数,如果不等于2,显示使用"用法帮助", 其中 $0 表示就是脚本自己。 2.用grep 在$2 文件中查找$1 字符串。 3.判断前一个命令运行后的返回值(一般成功都会返回0, 失败都会返回非0)。 4.如果没有成功显示没找到相关信息,否则显示找到了。 5.其中/"表示转义,在"" 里面还需要显示"号,则需要加上转义符/" . 下面运行的例子: ./chapter2.2.sh usage chapter2.2.sh Not Found "usage" in chapter2.2.sh-bash-2.b$ ./chapter2.2.sh Usage chapter2.2.sh echo "Usage: $0 string file";Found "Usage" in chapter2.2.sh2 Shell用户变量 2.1 基础 不管系统变量有多少,对于需求来说,总是不够的。用户变量是最常用到的变量,使用也十分简单。

用户定义的变量必须由字母数字及下划线组成,并且变量名的第一个字符不能为数字, 与其它UNIX名字一样,变量名是大小写敏感的. 对于用户变量,用户可按如下方式赋值:

name="Winter"在引用变量时,需在前面加$符号,用户也可以在变量间进行相互赋值,如:

name="Winter"WINTER=$nameecho "Hello $WINTER !"

输出结果应该很清楚:Hello Winter !

这里需要注意一点:变量和'='之间不要有空格,'='和赋值也不要有空格,否则shell不会认为变量被定义。掌握了基本的使用方法,你可以完全开始你的编程工作了。不过有时候需要未雨绸缪,下面介绍用户变量的一些技巧。

2.2 使用技巧 也可以用变量和其他字符组成新的字,这时可能需要把变量用{}括起,如:

SAT=Saturecho Today is ${SAT}day输出结果是: Today is Saturday

有时候为了避免变量名和别的字符产生混淆,你最好养成习惯把变量名用{}括起来。

对于未赋值的变量, Shell以空值对待, 用户也可以用unset命令清除给变量赋的值.看一个例子: 先猜猜结果是什么? -bash-2.b$ ./test.sh a=a=2a=如果你懂C++,你应该知道有个变量修饰符"const",用于避免程序一不小心对变量进行修改。在shell中,对于用户变量,你可以使用同样的修饰符"readonly", 如果我把上面的例子修改成这样: 其结果当然会不一样了: -bash-2.b$ ./test.sh a=a=2a=.3 shell 中的数组 shell变量中还能设置数组,但是不同的shell版本有不同数组赋值方法,而bourne shell 中不支持数组方式。因此,如果不是十分需要,还是建议你不要使用数组。若你的数据结构十分复杂,必须要使用数组,那么我建议你还是选择别的语言吧,shell不是万能的。

shell有两种赋值方式,第一种是直接用下标赋值:

name[0]="Tom"name[1]="Tomy"name[2]="John"...另一种方式对于不同的shell版本不一样。bash中赋值: [code]#!/usr/local/bin/bashname=("Tom" "Tomy" "John")for i in 0 1 2do echo $i:${name[$i]} ;done[html]上面两种赋值方式达到的效果一样。另外,你看见访问数组元素的方法了吗?使用${name[index]}的方式。注意第一行使用的是#!/usr/local/bin/bash, 和以前有些不一样哦。其输出结果是: -bash-2.b$ ./test.sh 0:Tom1:Tomy2:John

3 shell 环境变量 shell 环境变量是所有shell 程序都会接受的参数。shell程序运行时,都会接收一组变量,这组变量就是环境变量。常用的环境变量:名称 描述 PATH 命令搜索路径,以冒号为分隔符.注意与DOS下不同的是, 当前目录不在系统路径里 HOME 用户home目录的路径名,是cd命令的默认参数 COLUMNS 定义了命令编辑模式下可使用命令行的长度 EDITOR 默认的行编辑器 VISUAL 默认的可视编辑器 FCEDIT 命令fc使用的编辑器 HISTFILE 命令历史文件 HISTSIZE 命令历史文件中最多可包含的命令条数 HISTFILESIZE 命令历史文件中包含的最大行数 IFS 定义SHELL使用的分隔符 LOGNAME 用户登录名 MAIL 指向一个需要SHELL监视其修改时间的文件.当该文件修改后, SHELL将发消息You hava mail给用户 MAILCHECK SHELL检查MAIL文件的周期,单位是秒 MAILPATH 功能与MAIL类似.但可以用一组文件,以冒号分隔,每个文件后可跟一个问号和一条发向用户的消息 SHELL SHELL的路径名 TERM 终端类型 TMOUT SHELL自动退出的时间,单位为秒,若设为0则禁止SHELL自动退出 PROMPT_COMMAND 指定在主命令提示符前应执行的命令 PS1 主命令提示符 PS2 二级命令提示符,命令执行过程中要求输入数据时用 PS3 select的命令提示符 PS4 调试命令提示符 MANPATH 寻找手册页的路径,以冒号分隔 LD_LIBRARY_PATH 寻找库的路径,以冒号分隔 这些变量,要关注的最多的就是PATH, 其重要性不要我说了吧? 如果你希望把你定义的变量让其他所有的shell程序都能使用,也就是定义新的环境变量。你只要使用export关键词就可以了。例如: export MY_NAME=Winter export PATH=/home/winter/bin:$PATH 上面的程序中,第一行输出MY_NAME变量,第二行是在环境变量PATH中增加一个路径/home/winter/bin 。如果你希望这些设置在你登陆unix/linux都有效,你需要把他们加入到你的shell启动脚本中, 如果是使用bash ~/.bash_profile 其他版本你看一眼就知道了,在你的home目录下,以"."开头的文件,一般都会隐藏起来,你需要使用'ls -al'命令来显示。

推荐整理分享深入浅出Shell编程 Shell变量介绍(深入浅出python中文第二版pdf),希望有所帮助,仅作参考,欢迎阅读内容。

深入浅出Shell编程 Shell变量介绍(深入浅出python中文第二版pdf)

文章相关热门搜索词:深入浅出python,深入浅出python中文第二版pdf,深入浅出 spring security pdf,深入浅出oracle pdf,深入浅出算法,深入浅出oracle pdf,深入浅出算法,深入浅出算法,内容如对您有帮助,希望把文章链接给更多的朋友!

linux下监控网络流量的脚本 我看了下,linux下的/proc/net/dev记录了每块网卡发送和接受的包和字节数。因此萌生想法,写了一个。运行效果:[root@---~]#./net.shCurrentIp:inetaddr:.8

linux shell命令的常用快捷键 Ctrl+a切换到命令行开始Ctrl+e切换到命令行末尾Ctrl+l清除屏幕内容Ctrl+u清除剪切光标之前的内容Ctrl+k剪切清除光标之后的内容Ctrl+y复制剪切板里的内容Ctrl+

linux shell的输出效果修改方法(界面颜色) 文本终端的颜色可以使用ANSI非常规字符序列来生成。举例:echo-e"[;;5mME[0mCOOL"以上命令设置背景成为蓝色,前景白色,闪烁光标,输出字符ME,

标签: 深入浅出python中文第二版pdf

本文链接地址:https://www.jiuchutong.com/biancheng/378340.html 转载请保留说明!

上一篇:Linux BASH多进程并行处理的方法实现(linux多进程编程实例)

下一篇:linux下监控网络流量的脚本(linux监控网络请求)

  • 个人所得税中应纳税所得额高好还是低好
  • 金蝶财务软件年末结账步骤
  • 税收申报减免
  • 小规模纳税人为什么没有进项
  • 基本户和一般户的用途
  • 怎么找回丢失的手机号
  • 租赁合同印花税率
  • 独资企业和公司的优缺点
  • 小规模零申报增值税
  • 受托代销商品和受托代销商品款怎么列示
  • 运费单独开票的账务处理
  • 增值税属于会计科目的什么
  • 具备什么条件的土地可以开发
  • 采购设备包含安装费用吗
  • 呆账的处理
  • 企业职工福利费标准是什么
  • 异地设立分公司可以独立核算吗
  • 个税公司承担怎么做账计入其他应收款怎么平账
  • 个人所得税申报错误如何更正申报
  • 企业所得税清算报备是什么意思
  • 基本户转移到别的银行怎么转移
  • 企业可以采用在产品按固定成本计算法的有
  • 买入返售金融资产是资产还是负债
  • 资产总额是资产负债表中的哪个数
  • 所得税汇算清缴分录怎么做
  • windows10如何开启自动更新
  • pb估值是什么意思
  • 预收和应收怎么转换
  • 前端get请求传多个参数
  • 经营出租的机器设备需要计提折旧吗
  • rnbrcache.exe是什么意思
  • 废品损失科目的期末余额在借方表示什么?
  • 违反发票管理规定2次公告内容
  • 消费者取得哪种权利
  • 财政返还土地奖金的规定
  • php使用教程
  • 货物发生非正常损失为什么要做j进项转出
  • 雷尼尔国家公园攻略
  • 交易性金融资产的入账价值
  • 吉野是哪里
  • php连接mysql数据库步骤正确的是
  • yii2组件的理解
  • node.js环境搭建
  • 蓝桥杯2021出结果
  • 逐步结转分步法和平行结转分步法
  • 织梦设置的关键词看不到
  • 注册资本在十年后怎么办
  • 金税四期上线企业还活吗
  • 纳税人信息变更 需要变更什么
  • 小规模纳税人企业所得税2023
  • 签订三方协议是办理实时扣税的前提,这里三方是指
  • 房地产毛利额纳税调整
  • 支付给个人的佣金没有发票
  • 收到利息收入如何做分录
  • 一般纳税人月销售额10万以下
  • 账户利息计入什么科目
  • 某个项目投资款怎么入账
  • 实收资本小于注册资本账务处理
  • Windows Remote Shell(WinRM)使用介绍
  • solaris命令大全
  • 检测你的vps是不是真的
  • win8.1使用
  • fedora使用
  • linux中压缩文件
  • win7系统玩英雄联盟没有声音
  • win8系统硬盘怎样分区
  • linux克隆虚拟机
  • js中事件的三要素
  • 开手游游戏
  • java list和array list区别
  • php 时间差
  • jquery左右选择框
  • android4.4.2升级包
  • jquery属性选择器的基本
  • jquery easyUI中ajax异步校验用户名
  • ActivityManager: Warning: Activity not started, its current task has been brought to the front 的的问题
  • 变更税务登记后多长时间生效
  • 电子税务局财务报表利润表本期金额
  • 双流税务总局电话
  • 湖南 资源税
  • 免责声明:网站部分图片文字素材来源于网络,如有侵权,请及时告知,我们会第一时间删除,谢谢! 邮箱:opceo@qq.com

    鄂ICP备2023003026号

    网站地图: 企业信息 工商信息 财税知识 网络常识 编程技术

    友情链接: 武汉网站建设