注释
#单行注释
{多行注释}
:<<EOF(任意字符)
多行注释
EOF
变量
1、赋值规则
变量名=“变量”,等号左右不能有空格
数字、字母、下划线组成,开头不能是数字
已定义的变量名可重复赋值
隐式赋值:for file in 'ls /etc’或者for file in $(ls /etc)
2、引用规则
${变量名}引用变量,花括号可选,推荐使用
readonly 变量名, 将变量名代表的变量设置为只读
修改只读变量:gdb或者注销当前shell
unset 变量名,删除变量,只读变量不可删除
3、变量分类
局部变量:在脚本或命令中定义,只在当前shell实例中有效,其他shell启动的程序不能使用
环境变量:所有程序包括shell启动的程序都能访问程序变量
shell变量:shell程序设置的特殊变量,其中一部分是局部变量,一部分是环境变量
字符串
str=’’
1、单引号、双引号、无引号都可以
单引号:
单引号中的任何字符都会原样输出,不能插入变量引用
不能出现单独的单引号,转义也不可以,可以成对出现
双引号:name=“cx” str=“hello, you are “$name”! \n”
可以插入变量
可以出现转义符
2、使用
获取字符串长度:echo ${#变量名},一定要这样写
切片使用:echo ${str:1:4},一定要加花括号
索引字符 `expr index "$str" io`
输出第一次出现的下标
数组
bash支持一位数组,
1、赋值
数组名=(值1 值2…值n)或者数组名[0]=变量
单独赋值时下标可以不连续,单引号、双引号、无引号都可以
2、使用
${数组名[下标]},一定要加花括号
下标处填@获取数组中所有元素
${#数组名[@/*/i]},获取数组长度
传参
expr:手工命令行计数器,计算字符串或者四则运算
1、算数运算符:expr 四则运算表达式
expr 2 + 2
,2和加号之间一定要有空格,表达式外层一定要加expr $a + $b`
乘法*前要加反斜杠
2、关系运算符
3、布尔运算符
4、逻辑运算符
5、字符串运算符
6、文件测试运算符
![在这里插入图片描述](https://img-blog.csdnimg.cn/20201019000751440.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L2hlaW5yaWNoMjAwMA==,size_16,color_FFFFFF,t_70#pic_center)
echo
\n换行
\c不换行
\转义
单引号 不转义不取变量
`` 显示变量执行结果