1、只能使用数字、字母和下划线,且不能以数字开头
2、变量赋值是通过 = 进行赋值,在变量、等号和值之间不能有空格
3、使用一个定义过的变量,只要在变量名前面加美元符号即可,如:
your_name="qinjx"
echo ${your_name}
4、单引号里的任何字符都会原样输出,不解析变量。
双引号("")会解析变量,反引号(``)是执行引用命令的执行结果
5、获取字符串长度、截取字符串
name="runoob is a great site"
echo ${#name} # 输出 22
echo ${#name[0]} # 输出22
echo ${name:1:4} # 输出 unoo
我们可以在执行 Shell 脚本时,向脚本传递参数,脚本内获取参数的格式为:$n。n 代表一个数字,1 为执行脚本的第一个参数,2 为执行脚本的第二个参数,其中 $0 为执行的文件名(包含文件路径)
$# | 传递到脚本的参数个数 |
$$ | 脚本运行的当前进程ID号 |
$? | 脚本退出的状态 |
$0 | 脚本执行的文件名称 |
例子:
运行结果:
1、可以通过expr完成表达式的求值操作,表达式和运算符之间要有空格,
2、val=`expr 2 \* 3` 乘号(*)前边必须加反斜杠(\)才能实现乘法运算
3、条件表达式要放在方括号之间,并且要有空格,例如[$a==$b]是错误的
if else 的 [...] 判断语句中大于使用 -gt,小于使用 -lt。
如果使用 ((...)) 作为判断语句,大于和小于可以直接使用 > 和 <。
-
- #!/bin/bash
- if [ $# -lt 1 ]
- then
- echo "not fount param"
- exit 100
- fi
-
- flag=$1
- if [ $flag -eq 1 ]
- then
- echo "one"
- fi
-
- if (( $flag < 2 ))
- then
- echo "1"
- fi
- ~
- #!/bin/bash
- for str in 1 2 2 3
- do
- echo ${str}
- done
运行结果:
- #!/bin/bash
- i=1
- while(( $i<=5 ))
- do
- echo ${i}
- let "i++"
- done
- ~
结果:
shell文件包含的语法如下:
. filename 注意点号(.)和文件名中间有一个空格