shell 中的 特殊变量类型数组

shell 中两种数据类型:一是数值类型,二是字符串类型;虽然shell本身是弱类型的,但也可以这么区分。
如果我们需要在shell中一个变量中存储多个值,那么就需要一个更方便的类型数组
数组在shell中是用括号括起来每个值之间用空格隔开就定义了一个数组
a=(1 2 3 4 5)
a=("a" "b" "c" "d" "e")
a=(1 "a" 2 "b")
都是可以的

数组的运用
得到数组的长度:${#a[*]} 或者${#a[@]}
得到数组中所有的值:${a[*]} 或者${a[@]}
得到数组中指定值:${a[digit]} #digit表示数字下标,也就是数组每个元素的位置从0开始计数
得到数组中的连续的位置的值:${a[*]:0:3} 这里是使用了字符串截取的方法 ${var:开始位置:长度}的方法
修改某个数组中值a[下标]=值
利用for循环遍历数组
for i in ${a[@]}; do
echo i
done
删除数组中某一个值
unset a[下标]

原文地址:http://blog.51cto.com/13466287/2070073

时间: 2024-08-29 18:01:24

shell 中的 特殊变量类型数组的相关文章

bash shell中的环境变量

环境变量--bash shell使用环境变量来存储系统相关数据,并允许将数据存储在内存中. 环境变量分为:全局环境变量 本地环境变量 目录 全局环境变量 本地环境变量 设置全局环境变量 删除环境变量 PATH全局环境变量 设置系统环境变量的相关文件(登录.非登录.交互.非交互shell) 一.全局环境变量 在当前shell和子shell都可见 可以用printenv命令查看全局环境变量,大写表示是系统环境变量,小写表示是普通用户的环境变量 这是bash shell的一个标准约定,不是必须的,因此

shell中的特殊变量IFS

当我越来越习惯python的编写风格时,我经常会想用bash去遍历一个文件的行,并将读取的行进行处理. 但一个诡异的情况,如果我的文本类似于这样 the first line. the second line. the third line. for line in `cat filename` do echo $line done 当我通过上面的方式遍历文件的每一行,我发现读出来的数据是这样的: the first line. the second line. the third line.

SQL SERVER中LIKE使用变量类型不同输出结果不一致解惑

一同事在写脚本时,遇到一个关于LIKE里面使用不同的变量类型导致查询结果不一致的问题,因为这个问题被不同的人问过好几次,索性总结一下,免得每次都要解释一遍,直接丢一篇博客岂不是更方便!其实看似有点让人不解的现象背后实质跟数据类型的实现有关. 下面我们构造这样一个类似的简单案例.如下所, CREATE TABLE TEST (ID        INT IDENTITY(1,1), NAME    VARCHAR(32) )   INSERT INTO dbo.test SELECT 'abc32

shell中的环境变量:local,global,export

 1.local一般用于局部变量声明,多在在函数内部使用.实例如下:      echo_start() { local STR="$1" echo "...... ${STR} ......starting at $(date)" } 2.Shell脚本中定义的变量是global的,其作用域从被定义的地方开始,到shell结束或被显示删除的地方为止. 3.export 将自定义变量设定为系统环境变量(仅限于该次登陆操作,当前shell中有效)    语法:expo

Shell中的特殊变量($0、$#、$*、[email protected]、$$、$!、$?、$1~$n)

在Shell中,$*和[email protected]分别代表如下含义: $0 : 脚本自身的名称 $# : 位置参数的个数 $* : 所有的位置参数都会被看成一个字符串 [email protected] : 每个位置参数会被看做一个独立的字符串 $$ :  当前进程的PID $! : Shell最后运行的后台进程的PID $?  :    返回上一次命令是否执行成功:0表示执行成功,非0表示执行失败 $1~$n : 添加到Shell的各参数值.$1是第1参数.$2是第2参数-. 示例: #

JavaScript中如何判断变量是数组、函数或是对象类型

数组 ECMAScript5中Array.isArray是原生的判断数组的方法,IE9及以上支持.考虑到兼容性,在没有此方法的浏览器中,可以使用 Object.prototype.toString.call(obj) === '[object Array]'替代. var isArray = Array.isArray || function(obj) {     return Object.prototype.toString.call(obj) === '[object Array]'; }

JavaScript中如何判断变量是数组、函数还是对象类型

数组 ECMAScript5中Array.isArray是原生的判断数组的方法,IE9及以上支持.考虑到兼容性,在没有此方法的浏览器中,可以使用Object.prototype.toString.call(obj) === '[object Array]'替代. var isArray = Array.isArray || function(obj) { return Object.prototype.toString.call(obj) === '[object Array]'; } 函数 最

SHELL中的特殊变量

特殊变量: $# 传递到脚本的参数个数;      $* 以一个单字符串显示所有向脚本传递的参数.与位置变量不同,此选项参数可超过9个;      $$ 脚本运行的当前进程ID号;      $! 后台运行的最后一个进程的进程ID号;      [email protected] 与$*相同,但是使用时加引号,并在引号中返回每个参数;      $- 显示shell使用的当前选项,与set命令功能相同;      $? 显示最后命令的退出状态.0表示没有错误,其他任何值表明有错误; 位置变量:

Linux shell 中判断一个变量是否为空 的方法

判断一个脚本中的变量是否为空,我写了一个这样的shell脚本: #!/bin/sh #filename: test.sh para1= if [ ! -n $para1 ]; then echo "IS NULL" else echo "NOT NULL" fi 然后把该脚本:test.sh通过chmod +x 改为可以执行的脚本,执行后输出的结果为: NOT NULL,很是奇怪,最后,通过查询一些资料发现,可以通过如下方式判断一个shell变量是否为空: 1. 变