linux 命令详解 二十四
11. 数组:
Shell中提供了创建一维数组的能力,你可以把一串数字、名字或者文件放在一个变量中。使用declare的-a选项即可创建它们,或者在变量后面增加下标操作符直接创建。和很多其它开发语言一样,Shell中的数组也是0开始的,然而不同的是Shell中数组的下标是可以不连续的。获取数组中某个元素的语法格式为: ${arrayname[index]}。见如下示例:
/> declare -a friends #声明一个数组变量
/> friends=(sheryl peter louise) #给数组变量赋值
/> echo ${friends[0]} #通过数组下标的方式访问数组的元素
sheryl
/> echo ${friends[1]}
peter
/> echo ${friends[2]}
louise
/> echo ${friends[*]} #下标中星号表示所有元素。
shery1 peter louise
# ${#array[*]}表示数组中元素的数量,而${#friend[0]}则表示第一个元素的长度。
/> echo ${#friends[*]}
3
/> unset friends #unset array清空整个数组,unset array[index]仅清空指定下标的元素。
/> x[3]=100
/> echo ${x[*]}
100
/> echo ${x[0]} #0下标的元素并没有被赋值过,因为输出为空。
/> echo ${x[3]}
100
/> states=(ME [3]=CA [2]=CT) #ME的下标为0。
/> echo ${states[0]}
ME
/> echo ${states[1]} #数组下标为1的位置没有被赋值过,因此没有输出。
/> echo ${states[2]}
CT
/> echo ${states[3]}
CA
12. 函数:
和C语言一样,Shell中也可以创建自己的自定义函数。其格式如下:
function_name () { commands; commands; }
function function_name { commands; commands; }
function function_name () { commands; commands; }
函数的参数在函数内是以$[0-9]、${10}...,这种局部变量的方式来访问的。见下面的示例:
#函数的左花括号和命令之间必须有至少一个空格。每个命令的后面都要有一个分号,即便是最后一个命令
/> function greet { echo "Hello $LOGNAME, today is $(date)"; }
#此时函数已经驻留在当前的bash shell中,因此使用函数效率更高。
/> greet
Hello root, today is Fri Nov 18 20:45:10 CST 2011
/> greet() { echo "Hello $LOGNAME, today is $(date)"; }
/> greet
Hello root, today is Fri Nov 18 20:46:40 CST 2011
#welcome函数内部使用了函数参数。
/> function welcome { echo "Hi $1 and $2"; }
/> welcome stephen jane
Hi stephen and jane
#declare -F选项将列出当前Shell中驻留的函数
/> declare -F
declare -f greet
declare -f welcome
#清空指定的函数,使其不在Shell中驻留。
/> unset -f welcome
13. 重定向:
下面的列表为Shell中支持的重新定向操作符。
操作符 |
功能 |
< |
重新定向输入 |
> |
重新定向输出 |
>> |
追加输出 |
2> |
重新定向错误 |
&> |
重新定向错误和输出 |
>& |
重新定向错误和输出 |
2>&1 |
重新定向错误到标准输出 |
1>&2 |
重新定向标准输出到错误 |
>| |
重新定向输出的时候覆盖noclobber选项 |
#find命令将搜索结果输出到foundit文件,把错误信息输出到/dev/null
/> find . -name "*.c" -print > foundit 2> /dev/null
#将find命令的搜索结果和错误信息均输出到foundit文件中。
/> find . -name "*.c" -print >& foundit
#同上。
/> find . -name "*.c" -print > foundit 2>&1
#echo命令先将错误输出到errfile,再把信息发送到标准错误,该信息标准错误与标准输出合并在一起(errfile中)。
/> echo "File needs an argument" 2> errfile 1>&2
和C语言一样,Shell中也可以创建自己的自定义函数。其格式如下:
function_name () { commands; commands; }
function function_name { commands; commands; }
function function_name () { commands; commands; }
函数的参数在函数内是以$[0-9]、${10}...,这种局部变量的方式来访问的。见下面的示例:
#函数的左花括号和命令之间必须有至少一个空格。每个命令的后面都要有一个分号,即便是最后一个命令
/> function greet { echo "Hello $LOGNAME, today is $(date)"; }
#此时函数已经驻留在当前的bash shell中,因此使用函数效率更高。
/> greet
Hello root, today is Fri Nov 18 20:45:10 CST 2011
/> greet() { echo "Hello $LOGNAME, today is $(date)"; }
/> greet
Hello root, today is Fri Nov 18 20:46:40 CST 2011
#welcome函数内部使用了函数参数。
/> function welcome { echo "Hi $1 and $2"; }
/> welcome stephen jane
Hi stephen and jane
#declare -F选项将列出当前Shell中驻留的函数
/> declare -F
declare -f greet
declare -f welcome
#清空指定的函数,使其不在Shell中驻留。
/> unset -f welcome
13. 重定向:
下面的列表为Shell中支持的重新定向操作符。
操作符 |
功能 |
< |
重新定向输入 |
> |
重新定向输出 |
>> |
追加输出 |
2> |
重新定向错误 |
&> |
重新定向错误和输出 |
>& |
重新定向错误和输出 |
2>&1 |
重新定向错误到标准输出 |
1>&2 |
重新定向标准输出到错误 |
>| |
重新定向输出的时候覆盖noclobber选项 |
#find命令将搜索结果输出到foundit文件,把错误信息输出到/dev/null
/> find . -name "*.c" -print > foundit 2> /dev/null
#将find命令的搜索结果和错误信息均输出到foundit文件中。
/> find . -name "*.c" -print >& foundit
#同上。
/> find . -name "*.c" -print > foundit 2>&1
#echo命令先将错误输出到errfile,再把信息发送到标准错误,该信息标准错误与标准输出合并在一起(errfile中)。
/> echo "File needs an argument" 2> errfile 1>&2
/> cat errfile
转载于:https://blog.51cto.com/andra/815049
linux 命令详解 二十四相关推荐
- linux 命令详解 二十二
#${variable:=word}的示例,其C语言表示形式为: # if (NULL == variable) { # variable=world; # ...
- linux 命令详解 二十七
4. 循环语句: Bash Shell中主要提供了三种循环方式:for.while和until. for循环声明格式: for variable in word_lis ...
- linux中date使用方法,linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例)...
linux命令详解date使用方法(计算母亲节和父亲节日期脚本示例) 发布于 2016-02-07 15:58:40 | 108 次阅读 | 评论: 0 | 来源: 网友投递 LinuxLinux是一 ...
- 【WINDOWS / DOS 批处理】for命令详解(十)
for命令详解(一)[共十篇] for命令详解(二)[共十篇] for命令详解(三)[共十篇] for命令详解(四)[共十篇] for命令详解(五)[共十篇] for命令详解(六)[共十篇] for命 ...
- Linux命令详解:md5sum 命令
Linux命令详解:md5sum 命令 一.md5 算法介绍 二.md5sum 命令使用说明 三.md5sum 命令帮助 四.md5sum 命令选项.参数 语法 选项 参数 五.md5sum 命令实战 ...
- c linux time微秒_学习linux,看这篇1.5w多字的linux命令详解(6小时讲明白Linux)
用心分享,共同成长 没有什么比每天进步一点点更重要了 本篇文章主要讲解了一些linux常用命令,主要讲解模式是,命令介绍.命令参数格式.命令参数.命令常用参数示例.由于linux命令较多,我还特意选了 ...
- CMake手册详解 (十四)
2019独角兽企业重金招聘Python工程师标准>>> SirDigit CMake手册详解 (十四) CMD#32 : find_path搜索包含某个文件的路径 find_path ...
- linux命令chgrp,Linux命令详解之–chgrp命令 | Linux大学
摘要 Linux chgrp命令 可以用来变更文件与目录的所属群组,设置方式采用群组名称或群组识别码皆可. 我们在Linux命令详解之–chown命令 | Linux大学这篇文章中,我们介绍了更改文件 ...
- 《Linux命令详解手册》——Linux畅销书作家又一力作
关注IT,更要关心IT人,让系统管理员以及程序员工作得更加轻松和快乐.鉴于此, 图灵公司引进了国外知名出版社John Wiley and Sons出版的Fedora Linux Toolbox: 10 ...
最新文章
- Appstore|IPA
- 【NLP-词向量】词向量的由来及本质
- 继续送假期干货——响应式图片工具smartImg
- 数据结构之排序五:选择排序
- T-SQL 之 执行顺序
- 最近学gvim,mark低先
- 【Kafka】failed due to invalid credentials with broker older than 1.1.0
- linux shell spool,Linux/Unix shell 脚本中调用SQL,RMAN脚本
- SSD源码解读之ssd_pascal.py
- 复制构造函数被调用的3种情况
- Windows XP SP3 Beta版本(KB936929)已经发布到Connect
- 加入go行列的一个敲门砖吗----小玩意cs多人即时聊天,没有用数据库的,没有用框架的
- AUTOCAD——中心缩放
- python3手机版画图软件_Python实现画图软件功能方法详解
- 已知两边求角度公式_已知三边求角度公式
- python日期计算,Python 日期的转换及计算的具体使用详解
- Javascript笔记大全03
- 家长警惕 这4类孩子最易反复感冒
- python命名规则数字开头的成语_day01 Python基础
- 【转】Python之获取每日涨停板股票数据并绘制K线图!
热门文章
- jQuery Easy UI Panel(面板)组件
- Interactive cloth
- cisco ***笔记
- rand()和srand()产生伪随机数zz
- mysql 分段执行_19个MySQL优化技巧,索引优化这样做最有效!
- python初学小甲鱼_Python零基础入门学习 作者:小甲鱼
- 使用采用 Android* OS 的英特尔® 集成性能基元
- Win7如何快速打开本地连接
- Android Ndef Message解析
- MySQL error writing file 错误