随笔分类 -  shell编程基础

摘要:定义函数#语法一:func_name (){...函数体...} #语法二:function func_name {...函数体...}#语法三:function func_name () {...函数体...} 查看函数#查看当前已定义的函数名declare -F#查看当前已定义的函数定义decl 阅读全文
posted @ 2022-03-12 20:49 45645+56 阅读(47) 评论(0) 推荐(0)
摘要:while COMMANDS; do COMMANDS; done while CONDITION; do循环体done CONDITION:循环控制条件;进入循环之前,先做一次判断;每一次循环之后会再次做判断;条件为“true”,则执行一次循环;直到条件测试状态为“false”终止循环,因此:CO 阅读全文
posted @ 2022-03-12 15:57 45645+56 阅读(47) 评论(0) 推荐(0)
摘要:for 变量名 in 列表;do循环体donefor 变量名 in 列表do循环体done 范例 九九乘法表 #!/bin/bashfor i in {1..9};dofor j in `seq $i`;doecho -e "${j}x${i}=$[i*j]\t\c"doneechodone 将指定 阅读全文
posted @ 2022-03-12 15:54 45645+56 阅读(37) 评论(0) 推荐(0)
摘要:case 变量引用 inPAT1) 分支1 ;;PAT2) 分支2 ;;...*) 默认分支 ;;esac 阅读全文
posted @ 2022-03-12 15:47 45645+56 阅读(25) 评论(0) 推荐(0)
摘要:单分支if 判断条件;then条件为真的分支代码fi 双分支if 判断条件; then条件为真的分支代码else条件为假的分支代码fi 多分支if 判断条件1; then条件1为真的分支代码elif 判断条件2; then条件2为真的分支代码elif 判断条件3; then条件3为真的分支代码... 阅读全文
posted @ 2022-03-12 15:44 45645+56 阅读(36) 评论(0) 推荐(0)
摘要:case 变量引用 inPAT1)分支1;;PAT2)分支2;;...*)默认分支;;esac 阅读全文
posted @ 2022-03-07 22:08 45645+56 阅读(91) 评论(0) 推荐(0)
摘要:选择执行if语句 单分支if 判断条件;then条件为真的分支代码fi 双分支if 判断条件; then条件为真的分支代码else条件为假的分支代码fi 多分支if 判断条件1; then条件1为真的分支代码elif 判断条件2; then条件2为真的分支代码elif 判断条件3; then条件3为 阅读全文
posted @ 2022-03-07 21:59 45645+56 阅读(54) 评论(0) 推荐(0)
摘要:read命令来接受输入使用read来把输入值分配给一个或多个shell变量,read从标准输入中读取值,给每个单词分配一个变量,所有剩余单词都被分配给最后一个变量,如果变量名没有指定,默认标准输入的值赋值给系统内置变量REPLY 格式read [options] [name ...] 常见选项-p 阅读全文
posted @ 2022-03-07 10:54 45645+56 阅读(145) 评论(0) 推荐(0)
摘要:[ EXPRESSION1 -a EXPRESSION2 ] 并且,EXPRESSION1和EXPRESSION2都是真,结果才为真[ EXPRESSION1 -o EXPRESSION2 ] 或者,EXPRESSION1和EXPRESSION2只要有一个真,结果就为真[ ! EXPRESSION 阅读全文
posted @ 2022-03-06 22:51 45645+56 阅读(59) 评论(0) 推荐(0)
摘要:(CMD1;CMD2;...)和 { CMD1;CMD2;...; } 都可以将多个命令组合在一起,批量执行 ( list ) 会开启子shell,并且list中变量赋值及内部命令执行后,将不再影响后续的环境, 帮助参看:man bash搜索(list){ list; } 不会启子shell, 在当 阅读全文
posted @ 2022-03-06 20:06 45645+56 阅读(78) 评论(0) 推荐(0)
摘要:条件测试命令test EXPRESSION[ EXPRESSION ] #和test 等价,建议使用 [ ][[ EXPRESSION ]] 注意:EXPRESSION前后必须有空白字符 1 变量测试 #判断 NAME 变量是否定义[ -v NAME ]#判断 NAME 变量是否定义并且是名称引用, 阅读全文
posted @ 2022-03-06 20:05 45645+56 阅读(83) 评论(0) 推荐(0)
摘要:true, false1, 0 与:&: 和0相与,结果为0,和1相与,结果保留原值1 与 1 = 11 与 0 = 00 与 1 = 00 与 0 = 0 或:|: 和1相或结果为1,和0相或,结果保留原值1 或 1 = 11 或 0 = 10 或 1 = 10 或 0 = 0 非:!! 1 = 阅读全文
posted @ 2022-03-04 16:31 45645+56 阅读(100) 评论(0) 推荐(0)
摘要:shell 支持算术运算,但只支持整数,不支持小数bash中的算术运算+ -* /% 取模,即取余数,示例:9%4=1,5%3=2** 乘方 乘法符号有些场景需要转义 实现算术运算 (1) let var=算术表达式 (2) ((var=算术表达式)) 和上面等价 (3) var=$[算术表达式] 阅读全文
posted @ 2022-03-04 16:19 45645+56 阅读(162) 评论(0) 推荐(0)
摘要:printf "指定的格式" "文本1" ”文本2“…… 常用格式替换符 替换符 功能%s 字符串%f 浮点格式%b 相对应的参数中包含转义字符时,可以使用此替换符进行替换,对应的转义字符会被转义%c ASCII字符,即显示对应参数的第一个字符%d,%i 十进制整数%o 八进制值%u 不带正负号的十 阅读全文
posted @ 2022-03-04 15:03 45645+56 阅读(72) 评论(0) 推荐(0)
摘要:set 命令:可以用来定制 shell 环境$- 变量h:hashall,打开选项后,Shell 会将命令所在的路径hash下来,避免每次都要查询。通过set +h将h选项关闭i:interactive-comments,包含这个选项说明当前的 shell 是一个交互式的 shell。所谓的交互式s 阅读全文
posted @ 2022-03-04 14:49 45645+56 阅读(55) 评论(0) 推荐(0)
摘要:进程执行后,将使用变量 $? 保存状态码的相关数字,不同的值反应成功或失败,$?取值范例 0-255 $?的值为0 #代表成功$?的值是1到255 #代表失败 阅读全文
posted @ 2022-03-04 14:48 45645+56 阅读(29) 评论(0) 推荐(0)
摘要:位置变量 在bash shell中内置的变量, 在脚本代码中调用通过命令行传递给脚本的参数$1, $2, ... 对应第1个、第2个等参数,shift [n]换位置$0 命令本身,包括路径$* 传递给脚本的所有参数,全部参数合为一个字符串$@ 传递给脚本的所有参数,每个参数为独立字符串$# 传递给脚 阅读全文
posted @ 2022-03-04 14:11 45645+56 阅读(148) 评论(0) 推荐(0)
摘要:变量类型:内置变量,如:PS1,PATH,UID,HOSTNAME,$$,BASHPID,PPID,$?,HISTSIZE用户自定义变量 不同的变量存放的数据不同,决定了以下1. 数据存储方式2. 参与的运算3. 表示的数据范围 变量数据类型:字符数值:整型、浮点型,bash 不支持浮点数 Shel 阅读全文
posted @ 2022-03-03 16:20 45645+56 阅读(49) 评论(0) 推荐(0)
摘要:基本正则表达式 一 字符匹配 . 匹配任意单个字符,可以是一个汉字[] 匹配指定范围内的任意单个字符,示例:[wang] [0-9] [a-z] [a-zA-Z][^] 匹配指定范围外的任意单个字符,示例:[^wang][:alnum:] 字母和数字[:alpha:] 代表任何英文大小写字符,亦即 阅读全文
posted @ 2022-02-24 17:30 45645+56 阅读(44) 评论(0) 推荐(0)