shell学习笔记:变量相关
来源:互联网 发布:VPN连接用哪个端口 编辑:程序博客网 时间:2024/05/01 09:33
#!/bin/bash#==============================================================================================#1.变量定义#变量名必须以字母开头,变量和等号间不能有空格,值中如果有多个单词需要用双引号或者单引号引用起来#双引号引用的值可以进行变量替换、转义替换等,单引号引用的字符不能进行替换,全是字符串的一部分#获取变量值时,两边的花括号可加可不加,加上花括号是为了帮助解释器识别变量的边界,推荐给所有变量加上花括号#shell中没有类型之分,所有变量默认为字符串yourname="nnn"echo "your name is $yourname"echo "your name is ${yourname}"echo 'your name is ${yourname}' #输出your name is ${yourname},没有进行变量替换#==============================================================================================#2.readonly只读变量#只读变量的定义只需在变量赋值后,在变量前加上readonly即可,这样后面的代码中就不能改变该变量的值myurl="http://www.baidu.com"readonly myurlmyurl="www.baidu.com" #此处运行会报错"myurl:readonly variable"#==============================================================================================#3.unset删除变量#在使用完变量后,可以用unset将变量删除,但不能删除只读变量echo ${yourname}unset yournameecho ${yourname} #输出空,变量已被删除unset myurl #报错,“myurl: cannot unset readonly variable”#==============================================================================================#4.shell内置特殊变量#$0 表示当前执行的shell脚本名称,不会计算在$#/$*/$@中#$n 表示传递给脚本或函数的第n个参数#$# 表示传递给脚本或函数的参数个数#$@ 表示传递给脚本或函数的所有参数#$* 表示传递给脚本或函数的所有参数,与$@的区别是,在加上双引号后,"#@"将每个参数当成单独的字符串,"$*"将所有参数当成一个字符串#$? 表示上个命令或脚本的退出状态,或函数的返回值#$$ 表示当前shell脚本所在进程的进程idecho "Filename is $0" #输出当前shell的脚本名称echo "First para is $1" #输出传递给函数或脚本的第一个参数echo "Second para is $2" #输出传递给脚本或函数的第二个参数echo "The number of para is $#" #输出传递给函数或脚本的参数个数,不包括文件名本身echo "The pid is $$" #输出当前shell所在进程的idecho "The difference between $@ and $*:"#以下代码会将参数分多行输出for para in "$@"doecho "${para}"done#以下代码只讲参数输出到一行for para in "$*"doecho "${para}"done#==============================================================================================#5.数组定义和使用#shell中只支持一维数组,不支持多维数组,数组元素间以空格间隔,数组的下标默认从0开始计算,可定义不连续下标#获取数组元素值得时候一定要在元素两边加上花括号arr=(1 2 3 4 5)echo $arr[0] #输出1[0],错误echo ${arr[0]} #输出1#定义不连续下标arr[1]=5arr[5]=6#获取数组长度len=${#arr[@]} #或len=${#arr[*]}#获取单个元素的长度lenn=${#arr[1]} #获取第2个元素的长度#获取所有元素echo "${arr[*]}" #或echo "${arr[@]}"#==============================================================================================#6.数组在for循环中的应用#输出1到10之间的数(包括10)for i in $(seq 1 10)doecho $i #每行输出一个元素donearr=($(seq 1 2 10)) #或arr=(`seq 1 2 10`)for i in ${arr[*]}doecho $i donefor skill in Lua Python Shelldoecho "I am good at ${skill}Script"done#==============================================================================================#7.字符串#shell中主要是区分单引号和双引号引用的字符串区别#获取字符串的长度s="abcd"echo "The length of s is ${#s}" #4#获取字串echo ${s:1:2} #输出bc, 字符串也相当于字符数组,下标从0开始,获取第2个位子后的2个字符#==============================================================================================#8.变量赋值n=10let n+=1 #此处不能用n=$n+1,否则n的结果是10+1字符串((n++)) #双小括号里面按C语法解释n=$(($n+1)) #括号内的表达式空格随意,与c语法类似n=`expr $n + 1` #此处$n后有空格,+号两边的空格不能少n=$(expr $n + 1) #同上#==============================================================================================#9.变量输入read#读取一个变量echo -n "input a number:" #加-n不换行,加-e启用转义字符,否则转义字符按原样输出read numread -p "input a number" num #read 加-p直接输出提示语句,而不用echoecho "input a array:"read -a arr #read 加-a表示读取一个数组,以回车结束#==============================================================================================
0 0
- shell学习笔记:变量相关
- shell变量学习笔记
- Shell学习笔记---变量
- shell学习笔记一 变量
- Shell学习笔记---特殊变量
- Linux Shell 学习笔记(三)--Shell变量
- Linux Shell 学习笔记(三)--Shell变量
- Linux Shell 学习笔记2:Shell变量
- 2015—01—27 Shell学习笔记 《变量相关》(2)
- Shell脚本学习笔记(二)--变量
- Power Shell 学习笔记(三)变量
- shell学习笔记(5)-变量篇
- Shell学习笔记---变量赋值与运算
- shell学习笔记之二(变量)
- Linux学习笔记(7) 之Shell变量
- linux基础学习笔记-3-shell变量
- Shell 变量相关操作
- shell变量相关记录
- JAVA--Main方法详解
- php开发接口,生成动态签名校验
- struts2+spring+mybatis入门三
- fatal error: Python.h错误处理
- 网站相关流行技术词
- shell学习笔记:变量相关
- .h头文件中的ifndef/define/endif 的作用?
- 求职技巧
- 重力传感器
- pandas操作excel读写
- Unity3D教程:与Sqlite数据库直连
- Unity3D时间顺序与功能
- GC 日志分析
- iPhone判断当前网络连接状态