shell笔记

来源:互联网 发布:广州做淘宝最多的地方 编辑:程序博客网 时间:2024/06/09 20:18

纯粹摘抄于菜鸟笔记,以便备忘

#!/bin/bash  ##! 是一个约定的标记,它告诉系统这个脚本需要什么解释器来执行,即使用哪一种 Shell。chmod +x ./test.sh  #使脚本具有执行权限#运行方式./test.sh  #执行脚本#要用 ./test.sh 告诉系统说,就在当前目录找,没有./则在PATH 里寻找/bin/bash test.sh#分号表示语句的结束,每行的末尾分号可省略#忽略多余的空格,但变量赋值时不能有空格#变量#变量命名规范,字母开头,可有_,用$进行引用,{}仅起识别变量作用# readonly -只读 unset-删除变量#字符串#字符串可以用单引号,也可以用双引号,也可以不用引号#单引号里的任何字符都会原样输出,单引号字符串中的变量是无效的,且不能里面不能有单引号#双引号里可以有变量,双引号里可以出现转义字符#字符串相关api  #    #v-长度,v:1:4-截取#expr 语句#数组#用括号来表示数组,数组元素用"空格"(也可以是换行)符号分割开,引用数组  ${数组名[下标]},当前只支持一维数组#引用  ${arr[@]}, ${arr[*]}引用全部,${arr[n]}  引用单个#数组相关api#   ${#array_name[@]}或{#array_name[@]}数组长度  ,${#array_name[n]} 单个数组长度#传递参数#执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n,从1开始(不是从0开始)#相关api   $#-脚本参数的个数 ,  $*-所有参数("$*"用「"」括起来的情况、以"$1 $2 … $n"的形式输出所有参数)# $$-脚本运行的当前进程ID号,$!-最后一个进场id ,$@-同  $*  ,$-  -同set ,$?-显示最后命令的退出状态,0表示没有错误# $* 与 $@ 区别:只有在双引号中体现出来。假设在脚本运行时写了三个参数 1、2、3,,则 " * " 等价于 "1 2 3"(传递了一个参数),而  #  "@" 等价于 "1" "2" "3"(传递了三个参数)#基本运算符#原生bash不支持简单的数学运算,但是可以通过其他命令来实现,例如 awk 和 expr,expr 最常用#expr 语法 `expr 2 + 2` 中间运算符支持+-*/%...等基本运算,运算符两侧要有空格,*要有转义符#关系运算符仅支持数字,-eq,-ne,-gt,-lt,ge,le  (注意[  a -eq b ]中的空格,运算符两侧有空格,中括号前后也有空格)#boolean 运算符 !,a,o,&&,||#字符串运算符  =,!=,-z(长度是否为0),-n(长度是否不为0,对空字符串失效),str(是否为空)#文件运算符# -d(是否为目录),-f(是否为文件),-r(是否可读),-w(是否可写),-x(是否可执行),-s(文件大小是否大于0),-e(是否存在)#echo# 默认结尾换行  ,-e 开启转义,\c-不换行,\n换行#printf 默认不换行,支持替换符号:%s %c %d %f,操作对象为字符串,可家单引号或双引号或不加#%-10s 指一个宽度为10个字符(-表示左对齐,没有则表示右对齐),如果不足则自动以空格填充,超过也会将内容全部显示出来#%-4.2f 指格式化为小数,其中.2指保留2位小数#转义符#  \a-警告字符,通常为ASCII的BEL字符,\b-后退,\c-忽略之后(换行或其他字符),\f-换页(formfeed),\t-水平制表符..#test#参照基本运算符,码中的 [] 执行基本的算数运算#流程控制# 条件 if condition1;then command1;elif condition2;then command2;else commandN;fi#for循环 for var in arr;do command;done#while 循环 while condition;do command;done#until循环 until condition;do command;done#无限循环 for (( ; ; ))    ; while true;do command;done     ;  while :;do command;done     ; #case语句 case  var in 1) echo 1;;2) echo 2;;*)echo 3;;esac           ;;结束符#break;;跳出循环  continue;;跳出当前循环#函数# function meth_name(){}#没有返回值将返回最后一条命令运行结果,用$?获取返回值#输入\输出重定向#   command > file -输出重定向(覆盖),command >> file 追加,n  > file (0-stdin 标准输入,1-stdout 标准输出,2-stderr错误输出) # n >> file -追加, n>&m-输出合并, n<&m-输入合并, <<tag 在开始标记 tag 和结束标记 tag 之间的内容作为输入# $ command > /dev/null  不输出#文件包含#. filename或source filename (注意两者中间有空格)


原创粉丝点击
热门问题 老师的惩罚 人脸识别 我在镇武司摸鱼那些年 重生之率土为王 我在大康的咸鱼生活 盘龙之生命进化 天生仙种 凡人之先天五行 春回大明朝 姑娘不必设防,我是瞎子 淘宝上买手机不能用不给退怎么办 天猫申请退货退款卖家不处理怎么办 在淘宝买到货到付款的假苹果怎么办 跟朋友买手机买到假货怎么办 在淘宝网上买到不合格的产品怎么办 淘宝打假师打了我的店铺怎么办 收藏品公司关门跑路员工怎么办 客户快递签收后说货物短缺怎么办 京东商城买东西商家不换货怎么办 在商场买东西过几天就降价了怎么办 天猫买东西不退货不退款怎么办 买买8p美版的怎么办 京东金条银行卡被冻结还不了怎么办 在瑞士刚买的浪琴手表不走了怎么办 刚买的手表表镜有划痕 怎么办 唯品会上买的手表有质量问题怎么办 我买的对方材料没开票给我怎么办 给对方修完车车主不给发票怎么办 买苹果手机花呗额度不够怎么办 苹果手机用别人的手机卡激活怎么办 小米商城花呗分期额度不够怎么办 淘宝已经形成订单商家不发货怎么办 小米商城退款后又想买了怎么办 淘宝退货退款后不想退了怎么办 在转转的商品被屏了怎么办 不懂如何挑选适合自己的衣服怎么办 淘宝购买商品给顾客造成损失怎么办 微信购物地址写错了怎么办 微信购物后一直不发货怎么办 微信购物不发货也不退款怎么办 淘宝退货不小心点了确认收货怎么办 外卖不小心点了确认收货怎么办 圆通快递单号查不到物流信息怎么办 在京东买东西没收到退回去了怎么办 我的东西没收到退回去了怎么办 快递丢了快件丢失了快递公司怎么办 在天猫超市买东西订单关闭了怎么办 淘宝上退货店家收到货不理怎么办 淘宝申请退货退款卖家拒绝怎么办 闲鱼退货卖家拒绝退款怎么办 淘宝退货店家收到货不退款怎么办