1. Shell 是一个用C语言编写的应用程序,它是用户使用Linux的桥梁。
2. Shell既是一种命令语言,又是一种程序设计语言。
3. Shell是值一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell脚本, 它是一种为shell编写的脚本程序。
Shell环境,使用一个能编写代码的文本编辑器 vi 和一个能解释执行的脚本解释器。如:/bin/bash。
Linux的Shell种类众多,常见的有:
1. /usr/bin/sh 或 /bin/sh
2. /bin/bash (常用、默认)
3. /usr/bin/csh
...
在Shell中,将许多命令写在一起,让用户很轻松的就能执行一个文件的Shell脚本,就能够一次执行多个命令。
脚本第一行格式:
#!/bin.bash
符号#!用来指定该脚本文件的解析程序,这里使用的是bin目录下的bash解析器。
第一个脚本:vi hello.sh
#!/bin/bash echo ‘hello word‘
脚本执行:
1. /bin/bash 脚本名 (推荐)
2. chmod +x 脚本名 -> ./脚本名
注意事项:
变量:在程序运行过程中可以改变的量。
变量命名规则:
变量声明格式 : 变量名 = 变量值
注:变量名和=之间不能有空格。
#!/bin/bash you_name="qt" echo $you_name # 变量名前需要加$,或者 ${you_name},加花括号是为了帮助解释器识别变量的边界。
注意:在echo 字符串时,如果里面存在变量时,这个字符串要用""包裹,而不能使用‘‘,
echo ‘this is $you_name‘ # this is $you_name
echo "this is $you_name" # this is qt
只读变量
使用 readonly 命令可以将变量定义为只读变量。
#!/bin/bash readonly you_name="qt" echo $you_name # 输出qt you_name=‘tt‘ echo $you_name # 报错,并输入 qt
删除变量
使用 unset 命令可以删除变量
#!/bin/bash you_name="qt" echo $you_name # qt unset you_name echo $you_nam # 空
注:当变量是 readonly 时,使用 unset 会报错
字符串操作
#!/bin/bash name="hello" res="$name word" echo $res
#!/bin/bash name="hello" res="$name word" echo ${#res}
#!/bin/bash name="hello" res="$name word" echo ${res:1:4}
数组
定义:用括号代表数组,数组元素用“空格”符号分隔开。
形式:数组名=(值1 值2 ... 值n)
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) # 定义数组并赋值,由此可见,数组中可以存放不同类型的数据 echo ${num[0]} # 获取数组中下标为0的值 echo ${num[2]} # 获取数组中下标为2的值
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${num[@]} # 获取所有元素 echo ${num} # 当不带下标时,默认输入第一个元素,44
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${#num[@]} # 4
#!/bin/bash num=(44 11 ‘hello‘ ‘word‘) echo ${#num[1]} # 2
注释
以“#”开头的行就是注释,会被解释器忽略。第一行的#是解释说明,并不是注释!
sh里没有多行注释,只能每行接一个#。
基本运算符
> 算术运算符
> 关系运算符
> 布尔运算符
> 字符串运算符
> 文件测试运算符
expr 是一款表达式计算工具,使用它能完成表达式的求值操作。
两个数相加(注意使用的是反引号` 而不是单引号 ‘)。
#!/bin/bash exp=`expr 2 + 2` # 表达式之间需要用空格 echo "sum: $exp"
....持续更新
原文:https://www.cnblogs.com/RiverMap/p/12632873.html