shell编程基础
来源:互联网 发布:四川大学网络空间学院 编辑:程序博客网 时间:2024/05/20 21:58
····shell变量
定义变量 variableName="value" 使用变量 echo ${variableName} 只读变量 readonly variableName 删除变量 unset variableName 变量类型 1)局部变量 仅仅当前shell自己使用。 2)环境变量 全部shell都能使用。 3)shell变量 脚本中设置的变量,脚本运行结束就消失。
····shell特殊变量
$0 当前脚本名 $n 传递给脚本或者函数的第n个参数。 $# 传递给脚本或者函数的参数个数。 $* 传递给脚本或函数的所有参数。 $@ 传递给脚本或函数的所有参数。被双引号(" ")包含时,传给函数的参数作为整体 “aa bb cc dd”。 $? 上个命令的执行状态。 $$ 当前shell的进程id。
····Shell替换
转义字符 echo -e 表示对转义字符进行替换 以下转移命令: \\ 反斜杠 \a 警报,响铃 \b 退格(删除键) \f 换页(FF),将当前位置移到下页开头 \n 换行 \r 回车 \t 水平制表符(tab键) \v 垂直制表符 命令替换 variableName=`command` 使用反引号 shell变量删除 从前匹配删除 path=123456789123456789 echo ${path#1*3} 输出结果 456789123456789 echo ${path#1*3} 输出结果 456789 从后匹配删除 filename=file.bak.bak echo ${filename%.bak} 输出结果 file.bak echo ${filename%%.bak} 输出结果 file shell变量取代 new=abcabcabc echo ${new/abc/ABC} 输出结果 ABCabcabc echo ${new//abc/ABC} 输出结果 ABCABCABC Shell变量替换 var=${str-expr} str未声明 str为空 str非空 str= str= str=zww var=expr var= var=zwwvar1=${str1:-expr} str1未声明 str1为空 str1非空 str1= str1= str1=zww var1=expr var1=expr var1=zwwvar2=${str2+expr} str2未声明 str2为空 str2为空 str2= str2= str2= var2= var2=expr var2=exprvar3=${str3:+expr} str3未声明 str3为空 str3非空 str3= str3= str3=zww var3= var3= var3=exprvar4=${str4=expr} str4未声明 str4为空 str4非空 str4=expr str4= str4=zww var4=expr var4= var4=zwwvar5=${str5:=expr} str5未声明 str5为空 str5非空 str5=expr str5=expr str5=zww var5=expr var5=expr var5=zwwvar6=${str6?expr} str6未声明 ./zww.sh: line 75: str6: expr str6为空 ./zww.sh: line 77: str6: expr str6非空 str6=zww var6=zwwvar7=${str7:?expr} str7未声明 ./zww.sh: line 84: str7: expr str7为空 ./zww.sh: line 87: str7: expr str7非空 str7=zww var7=zww
····Shell运算符
数字运算符 expr 4 + 4 加法 expr 4 - 2 减法 expr 4 \* 4 乘法 expr 8 / 2 除法 expr 8 % 2 取余 关系运算符 [ $a == $b ] [ $a -eq $b ] 是否相等 [ $a != $b ] [ $a -ne $b ] 是否不等 [ $a -le $b ] 是否小于 [ $a -lt $b ] 是否小于等于 [ $a -ge $b ] 是否大于 [ $a -gt $b ] 是否大于等于 布尔运算符 [ ! false ] 返回 true。 $a -lt 20 -o $b -gt 100 ] 返回 true。 $a -lt 20 -a $b -gt 100 ] 返回 false。 字符串运算符 [ $a = $b ] 两字符串相同,为真。 [ $a != $b ] 两字符串不同,为真。 [ -z $a ] 字符串为空时,为真。 [ str ] 字符串非空时,为真。
····Shel字符串
单引号 单引号里的任何字符都会原样输出 双引号 双引号里可以有变量 获取字符串长度 echo ${#string} 提取子字符串 echo ${string:1:4} 字符串删除 path=123456789123456789 echo ${path#1*3} 输出结果 456789123456789 echo ${path#1*3} 输出结果 456789 filename=file.bak.bak echo ${filename%.bak} 输出结果 file.bak echo ${filename%%.bak} 输出结果 file 字符串取代 new=abcabcabc echo ${new/abc/ABC} 输出结果 ABCabcabc echo ${new//abc/ABC} 输出结果 ABCABCABC
····Shell数组
数组的定义 array_name=(value0 value1 value2 value3) 还可以单独定义数组的各个分量: array_name[0]=value0 array_name[1]=value1 array_name[2]=value2 读取valuen=${array_name[2]} 使用@ 或 * 可以获取数组中的所有元素 ${array_name[*]} ${array_name[@]} 获取数组的长度 # 取得数组元素的个数 length=${#array_name[@]} # 或者 length=${#array_name[*]} # 取得数组单个元素的长度 lengthn=${#array_name[n]}
阅读全文
0 0
- 【shell】shell 编程基础
- shell编程之shell基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- Shell编程基础
- 学习Shell编程基础
- Linux Shell 编程基础
- 基础shell编程
- Shell编程基础
- shell编程基础
- [分享]Shell编程基础
- Shell编程基础
- Shell编程基础
- shell编程基础
- shell编程基础
- 到来的Rxjava2.0<一>
- 算术表达式的转换——算术表达树
- 整理一下js的基础知识
- write EIO nodejs报错
- IntelliJ IDEA 出现" java: 程序包javax.servlet不存在、 java: 程序包javax.servlet.annotation"等错误
- shell编程基础
- LINUX用户管理——/etc/passwd文件详解
- IDEA 集成 lombok
- docker跨主机访问通信-Weave
- UE4打包后运行exe黑屏
- 遍历_EPROCESS->Vm->WorkingSetExpansionLinks链表枚举进程
- 文章标题
- iOS获取设备常用健康数据
- C# 操作本地SQL Server实现增删改查