2.shell变量
来源:互联网 发布:淘宝限时特价 编辑:程序博客网 时间:2024/05/22 13:26
1.shell变量名的命名规则:
(1)首个字符必须为字母
(2)中间不能有空格,可以使用下划线
(3)不能使用标点符号
(4)不能使用bash中的关键字
如:your_name="hello"
可以用语句给变量赋值。如:for file in 'ls /etc' 是将 /etc 下目录的文件名循环列出来
2.使用变量:使用一个定义过的变量,需要在变量名前面加美元符号:echo $your_name 或 echo ${your_name} 。加花括号是为了帮助解释器识别变量的边界。
3.只读变量:使用readonly命令可以将变量定义为制度变量,其值不可被改变。
如:my_name="aaa"
readonly my_name
my_name="bbb"
运行脚本时候,就会报错。
4.删除变量:使用unset命令。语法:unset variable_name。unset命令不能删除只读变量。
变量类型:3种。
(1)局部变量:在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。
(2)环境变量:所有的程序,包括shell启动的程序都能访问。有些程序需要环境变量来保证其运行正常。
(3)shell变量:由shell程序设置的特殊变量。其中有一部分是环境变量,一部分是局部变量,这些变量保证率shell的正常运行。
shell字符串:shell编程中最常用的数据类型,可以用单引号,也可以用双引号,也可以不用引号。
1.单引号字符串的限制:
(1)单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的。
(2)单引号字符串中不能出现单引号。
2.双引号:双引号里可以有变量 && 双引号中可以出现转义字符。如:
a="hello, "\"$your_name\" ! \n"#此处输出时候\n不会换行,要用echo -e 命令
3.拼接字符串
b="hello, "$your_name" !"
c="hello, ${your_name} !"
4.获取字符串长度
echo ${#your_name} #输出3
5.提取子字符串
string="what's your name"
echo ${string:1:4}#输出 hat'
6.查找子字符串
echo `expr index "$string" wh`#查找w或者h的位置,输出为1
shell数组:bash支持一维数组,不支持多维,并且没有限定数组的大小。
数组元素下标从0开始,获取元素利用下标,下标可以是整数或算术表达式。
1. 定义数组:
数组名={值1 值2 ... 值n} 或者
单独定义数组各个分量:array[0]=value0
array[1]=value1.....
2.读取数组:
${数组名[下标]}
使用@符号可以获取数组中的所有元素:echo ${array[@]}
3.获取数组长度:
获得数组元素的个数:length=${#array[@]} 或者 length=${#array[*]}
获得数组单个元素的长度:lengthn=#{#array[n]}
shell注释:以“#”开头的行就是注释,会被解释器忽略。sh中没有多行注释。
若想要注释大段代码,可以将代码用一对花括号括起来,定义成一个函数,没地方调用此函数,这代码快也就不会执行。
阅读全文
0 0
- 2.shell变量
- 【shell脚本学习】2.linux shell变量
- 2.shell变量的问题
- Shell变量
- Shell变量
- shell 变量
- Shell 变量
- Shell变量
- shell变量
- shell变量
- shell 变量
- Shell ”变量“
- Shell变量
- SHELL 变量
- shell变量
- shell变量 ***
- shell变量
- shell 变量
- 设计模式之单例模式
- 配置Android studio gradle
- Laravel 即时应用的一种实现方式 Websocket
- android 自定义View加载圆形进度条
- 莫烦tensorflow教程笔记(二)
- 2.shell变量
- 78. Subsets
- Java对象克隆赋值
- poj1422-最小路径覆盖(不交叉)&二分图-Air Raid
- 文件存储方案对比
- 集合框架—ArrayList集合
- cmd里面快速粘贴复制的设置方式以及初始位置设置
- python+selenium子元素一致父元素不一致的定位处理
- 3.shell传递参数&&数组