1. 查看Shell脚本的所有变量
1 | set # 用于查看Shell脚本的所有变量 |
2.定义一个Shell变量
规则:
a.变量名习惯为大写;
b.单双引号有区别:双引号只将空格脱意(也就是保留原型)、单引号会将所有特殊字符脱意(也就是输入什么就是什么,例如:输入\ 输出就是 \ )
c.符号 ` (Esc下方的那个小飘号) 引起来的内容将会被作为一个指令执行,执行结果赋值给变量。例如: h=`pwd` 将会把当前的路径赋值给h
d.双飘号等价于$(命令)。例如:h=`pwd` 等价于h=$(pwd)1
2
3变量=值 # 定义一个变量。注意,= 左右两边不能有空格
readonly 变量=值 # 声明一个静态变量,此变量不能被unset
export 变量名 # 将指定的变量提升为全局变量,可供其他Shell程序使用
3.变量引用
1 | $变量名 #引用变量 |
4.Shell中的特殊变量
1 | $? #上一个命令退出的状态(或者返回值) |
5.打印一个变量
1 | echo $变量名 #例如:echo $h 表示输出变量h |
6.运算符
格式:expr 9 * 9 或 $((m+n)) 【expr运算符之间一定要有空格】
例如:计算(2 + 3) x 41
2
3
4
5
6
7
81、分步计算
s = 'expr 2 + 3'
expr $s\*4 #这里的*需要转义
2、一步完成计算
expr 'expr 2 + 3' \*4 或 $(((2+3)*4)) #貌似后者要简单点
如果要输出结果的话,需要这样:
echo 'expr 'expr 2 + 3' \*4'
7.for循环
1 | # 第一种 |
8.while循环
1 | #第一种 |
9.case语句
1 | #格式 |
10.read命令
格式:read -p “提示语句” 变量 -n 字符个数 -t 等待时间。例如:1
read -p "请输入您的名字" name
执行这段代码后,命令行提示 “请输入您的名字”,用户输入的内容将存入name中。
11.if判断
1 | #语法格式: |
12.常用判断条件
1 | = 字符串比较 |
13.自定义函数
注意:
- 调用函数一定要在声明在以后
- 函数的返回值只能通过 $? 来获取。
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21# 语法
function 方法名()
{
[return i] #[] 表示可选,返回值必须是0-255的int类型
}
例如下面的shell脚本(假设文件为sum.sh):
function fSum()
{
echo "您输入的两个参数分别是:$1,$2." #$1和$2分别是输入的前两个参数
return $(($1+$2)); # 返回两个参数相加的结果
}
echo "第一次调用的返回结果是:$?"
fSum 5 7; #调用hansh
total=$?; # 拿到上一次的执行结果并赋值给total (=两边不能有空格)
echo $total,$?; #打印total和上一次执行结果
===执行【. ./sum.sh】输出结果===
第一次调用的返回结果是:0 # $?为0表示上次的function定义成功
您输入的两个参数分别是:5,7. #这是函数内部打印的
12,0 #这次 $? 为0是因为 total的赋值命令执行成功
14.debug方式执行(打印每个步骤详细信息及中间变量值)
1 | # 方式1 |