在操作Linux系统时,我们输入的所有命令,都是先通过Shell层,再到达内核的。
脚本格式要求
1.脚本以 #!/bin/bash开头
2.脚本需要有可执行权限
脚本常用的执行方式
Shell脚本 HelloWorld!
#!/bin/bash
echo "hello,world"
方式1(输入脚本的绝对路径或相对路径)
说明:首先要赋予helloworld.sh 脚本的+x权限,再执行脚本
方式2(sh+脚本)
说明:不用赋予脚本 +x权限,直接执行即可。
Shell的变量
Shell变量介绍
1.Linux Shell 中的变量分为,系统变量和用户自定义变量。
2.系统变量:$HOME $PWD $SHELL $USER
3.显示当前shell中的所有变量 set
shell变量的定义
基本语法
1.定义变量 : 变量名 = 值
2.撤销变量: unset变量
3.声明静态变量 readonly变量 注意,静态变量是不能unset的
1 #!/bin/bash
2 #定义变量A
3 #撤销变量A
4 #声明静态的变量B = 2 ,不能unset
5 A=100
6 #输出变量要加上dollar
7 echo A=$A
8 echo "A=$A"
9
10 unset A
11 echo A=$A
12
13 readonly b=2
14 echo b=$b
15 unset b输出
A=100
A=100
A=
b=2
pra01.sh: 第 15 行:unset: b: 无法反设定: 只读 variable
定义变量的规则
1.变量名称可以铕字母、数字和下划线组成,但是不能以数字开头。5A=200(X)
2.等号两侧不能有空格
3.变量名称一般习惯为大写(习惯性的规范)
将命令的返回值赋给变量
1.A=`date` 反引号,运行里面的命令,并把结果返回给变量A
2.A=$(date) 等价于反引号
设置环境变量
1.export 变量名=变量值
2.source 配置文件 (令配置文件生效)
3.echo $变量名
位置参数变量
$n $@ $# $*
#!/bin/bash
echo "0=$0 1=$1 2=$2"
echo "所有的参数$*"
echo "$@"
echo "参数的个数=$#"
[root@Hadoop-3 shcode]# ./myshell.sh 1000 2000
0=./myshell.sh 1=1000 2=2000
所有的参数1000 2000
1000 2000
参数的个数=2
运算符
1.$((运算式)) 或 $[运算式] 或者 expr m+n
2.注意expr运算符间要有空格
3.expr m-n
4.expr \* 乘法 / 除 % 取余
if-else语句,在下文中。
注意空格!!!!!!!!!!!!!!!!!!!!!!!!!
#!/bin/bash
read -p "please input your name" NAME ;
if [ $NAME = root ]
then
echo "Hello ${NAME} ,welcome";
elif [ $NAME = zc ]
then
echo "hello ${NAME} ,welcome";
else
echo "U cant enter";
fi
for语句有两种使用方式
for N in 1 2 3
do
echo $N
donefor ((i = 0; i <= 5 ; i++))
do
echo "welcome $i times";
done
函数:
#!/bin/bash
funWithReturn(){
echo "add"
echo "first num"
read anum
echo "second num"
read bnum
echo "两个数字分别是 $anum 和 $bnum"
return $((anum+bnum))
}funWithReturn
echo "和为 $?";