没有合适的资源?快使用搜索试试~ 我知道了~
shell浅谈之十一别名、列表及数组.docx
需积分: 3 0 下载量 27 浏览量
2022-11-25
22:29:53
上传
评论
收藏 112KB DOCX 举报
温馨提示
试读
13页
Shell中别名可以对命令进行重新命名,方便用户记忆长命名和定制自己熟悉的工作环境;列表是一组命名以逻辑与、逻辑或的关系串在一起,实现脚本程序的逻辑控制;数组是一重点,涉及数组的赋值、操作和字符串的处理,以及利用数组实现堆栈和二维数组等数据结构的存储。
资源推荐
资源详情
资源评论
shell 浅谈之十一别名、列表及数组
一、简介
Shell 中别名可以对命令进行重新命名,方便用户记忆长命名和定制自己熟悉的工作环
境;列表是一组命名以逻辑与、逻辑或的关系串在一起,实现脚本程序的逻辑控制;数组是
一重点,涉及数组的赋值、操作和字符串的处理,以及利用数组实现堆栈和二维数组等数据
结构的存储。
二、详解
1、别名
对 linux 命令重新命名,主要考虑到很多 linux 命令带有冗长的选项和参数,频繁使用
这些长命令极易造成用户使用上的不便。别名的命令关键字是 alias,基本格式为 alias
name='original-command'(等号两边不能有空格)。如 alias ipconfig=ifconfig。若要
删除已经设置的别名,使用内建命令 unalias,unalias -a 表示删除所有已设置的别名,
unalias alias-name 表示仅删除 alias-name 别名。
[cpp] view plain copy
1. #!/bin/bash
2.
3. shopt -s expand_aliases #打开 expand_aliases 选项
4. alias detail="ls -l"
5. detail /root/in* #别名支持通配符*
6. echo
7. directory=/root/
8. prefix=in*
9. alias vardetail="ls -l $directory$prefix" #双引号和单引号在处理空格时是
等价的,
10. #但设置 vardetail 引用了变量,
此处只能使用双引号
11. vardetail
12.
13. echo "Deleting all aliases:"
14. unalias -a #删除所有的别名
15. detail
16. vardetail
若要在脚本中使用别名功能,必须在脚本使用 shopt -s expand_aliases 命令打开
expand_aliases(表示别名可以被扩展)选项,未打开,alias 命令建立的别名不会执行。
要注意的是:在诸如 if/then 结构、循环和函数等混合型结构中不能使用 alias 命令设
置别名,但可以执行在混合型结构之外所设置的别名。
2、列表
(1)shell 中列表是由一串命令用与运算(&&)和或运算(||)连接而成,分别称为与列
表和或列表。与列表的格式为:命令 1 &&命令 2&& 命令 3 &&... &&命令 n,从左到右
依次执行命名,直到某命令返回 FALSE 时(退出状态为非 0)与列表执行终止。或列表的
格式为:命令 1 || 命令 2 || 命令 3 ||... ||命令 n,从左到右依次执行命名,但是当某命令返
回 TRUE 时(退出状态为 0)或列表执行终止。
(2)与列表控制输入参数个数和返回状态码
[cpp] view plain copy
1. #!/bin/bash
2.
3. MAXARGS=3
4. ERROR=68
5. test $# -ne $MAXARGS && echo "Usage: `basename $0` $MAXARGS arguments
" && exit $ERROR
6. echo "Less than $MAXARGS arguments are passed to this script."
7. exit 0
(3)或列表控制输入参数个数和返回状态码
[cpp] view plain copy
1. #!/bin/bash
2.
3. MAXARGS=3
4. ERROR=68
5. test $# -eq $MAXARGS || (echo "Usage: `basename $0` $MAXARGS argument
s" && false) || exit $ERROR
6. echo "Correct arguments are passed to this script."
7. exit 0
可以对比或列表和与列表的语句,由于 echo 命令总是返回 TRUE,要将 echo 和 false
进行与运算从而返回 FALSE 值。其中 test 命令实际上是或列表的嵌套,在使用与或列表嵌
套时需要利用圆括号区分逻辑运算的优先级。
3、数组
(1)赋值和取值
数组(Array)是一个由若干同类型变量组成的集合,数组均由连续的存储单元组成,
最低地址对应于数组的第一个元素,最高地址对应于最后一个元素。Shell 只支持一维数组,
array[x]表示 array 数组的第 x+1 个元素,支持的最大数值标号是 599 147 937 791。shell
取得数组值(引用数组元素)格式是:${array[x]}。
[cpp] view plain copy
1. #!/bin/bash
剩余12页未读,继续阅读
资源评论
可以燎原的星星
- 粉丝: 153
- 资源: 12
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功