开始学习shell语法-相当于一个新的语言
概述
shell语法能做什么?可以做一个外挂!太6了,那我兢兢业业敲了两遍的作业算什么!!算我勤劳吗!
shell是与OS沟通的工具,是解释性的语言,不需编译可直接运行,可以写成脚本,实现复用。
Linux常用bash的shell脚本,文件开头要写**#! /bin/bash** 这是在指明脚本所用解释器是bash。如果用python做解释器要写**#! /usr/env python**【不要死记硬背,要练习】
#! /bin/bash
echo "Hello World"
执行得到输出:Hello World
chmod +x 文件名,可以让.sh文件可执行,作为可执行文件执行时,使用:
./test.sh
/home/usr/yest.sh
~/test.sh
这三条语句都可实现,第一个是当前目录下执行,第二个是根目录执行,第三个是家目录执行。第一个是相对路径,二三都是绝对路径。
用解释器执行不需要权限:~$ bash test.sh
即可。
注释
# 单行注释,也可在行中注释:<<EOF
多行注释
多行注释
EOF:<<abc
注释
注释
abc:<<!
1
2
!
可以看出,多行注释的EOF可以用很多其他字符串来代替,也可以用!来写。
变量
1.使用变量
shell里边定义变量的时候,一般都是定义的字符串:
echo name1='zhh'
echo name2="zhhhh"
echo name3=zhhhhhhh #这些方法都可以,定义出来的效果是一样的,不用加;
使用变量一定要用$name1,${name2},${name3}www
这些方法都可以,最好加上{}来识别变量边界,比如第三种。
2.只读变量
readonly name
declare -r name
这样可以将变量变成只读变量
3.删除变量
unset name
变量就会变成空字符串。
4.变量类型
自定义变量,也叫局部变量,局部变量只能在子进程中使用
环境变量,也叫全局变量,全局变量可以在全环境使用
局部变量和全局变量之间是可以转换的:
bash #进入一个子进程
name=zhh
declare -x name #将自定义变量变为环境变量
declare +x name #将环境变量变为自定义变量
exit #退出子进程
5.字符串