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 (注意两者中间有空格)
阅读全文
0 0
- [shell]shell脚本笔记
- shell笔记
- shell笔记
- shell笔记
- shell笔记
- Shell笔记
- Shell笔记
- shell笔记
- Shell 笔记
- shell 笔记
- shell笔记
- Shell 笔记
- shell笔记
- shell笔记
- shell笔记
- shell笔记
- shell笔记
- Shell笔记
- 图灵赠书——程序员11月书单
- 嵌入式Linux使用dd命令制作eMMC镜像
- 数据库表的操作——创建表
- Object.defineProperty
- radiobutton设置drawableTop图片的大小
- shell笔记
- 第九周项目3
- DJANGO ADMIN后台设置
- Oracle的表操作——非空约束
- Hanlder倒计时跳转
- OpenGrock搭建
- Android Studio NDK 入门demo
- Sqoop1.99.7安装
- Blog17@linux关于lvm