Shell脚本语言
Linux Shell种类非常多,常见的有: Bourne Shell (/usr/bin/sh或/bin/sh)、Bourne Again Shell (/bin/bash) 、 C Shell(/usr/bin/csh)、K shell(/user/bin/ksh)、Shell for Root(/sbin/sh)等。不同的Shell语言的语法有所不同,所以不能交换使用。
创建第一个脚本
vi first_shell.sh
对脚本编辑内容
#!/bin/bash
#Filename: first_shell.sh
#auto echo hello world!
#by authors zhang 2019
echo “Hello,world”
编辑完成后使用ESC退出插入模式,然后输入 ** : + wq ** 退出;
给予执行权限:
chmod o+x first_shell.sh
运行:
./first_shell.sh
2.1 变量的详解
Shell编程语言是非类型的解释型语言,不像C++/JAVA语言编程时需要事先声明变量,SHELL给一个变量赋值,实际上就是定义了变量,在Linux支持的所有Shell中,都可以用赋值符号(=)为变量赋值,实际上就是定义了变量,在Linux支持的所有Shell中,都可以用赋值符号(=)为变量赋值。
Shell变量可分为两类:局部变量和环境变量。局部变量只在创建它们的Shell脚本中使用。而环境变量则可以在创建它们的Shell及其派生出来的任意子进程中使用。有些变量时用户创建的,其他的则是专用Shell变量;
例如在脚本里面定义A=123,定义这样一个变量,前面是变量名,后面是变量的值。
引用变量可以使用$变量名;
创建var.sh并编辑
vi var.sh
输入内容:
#!/bin/bash
#define path variables
#by authors anyu 2019
name=anyu
echo “My name is $name”
按ESC退出插入模式,再使用 WQ 进行保存退出;
运行:
sh var.sh
运行后显示结果: My name is anyu
这里的demo是一个局部变量
系统变量:
它是系统已经为我们定义好了的变量,我们可以不用定义,直接使用即可
$0 当前程序的名称(当前脚本的名称)
$n 当前程序的第n个参数,n=1,2,3…9
$* 当前程序的所有参数(不包括程序本身)
$# 当前程序的参数个数(不包括程序本身)
$? 命令或程序执行完后的状态,一般返回0表示执行成功
$UID 当前用户的ID (结果为0的是Root用户)
$PWD 当前所在的目录
$n代码示例:
echo $1 $2
-执行命令:
sh var.sh param1 param2
显示结果:
param1 param2
if条件判断语句
if (表达式)
语句1
else
语句2
fi
逻辑运算符解析:
-f 判断文件是否存在 例如: if[-f filename]
-d 判断目录是否存在 例如: if[-d dir]
-eq 等于 应用于:整型比较
-ne 不等于 应用于:整型比较
-lt 小于 应用于:整型比较
-gt 大于 应用于:整型比较
-le 小于或等于 应用于:整型比较
-ge 大于或等于 应用于:整型比较
-a 双方都成立(and) 逻辑表达式 -a 逻辑表达式
-o 单方成立(or) 逻辑表达式 -o 逻辑表达式
-z 空字符串