Linux之Shell语法详解

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/IT_10/article/details/89741605

Shell是什么

Shell是一个命令行解释器,它为用户提供了一个向Linux内核发送请求以便运行程序的界面系统级程序用户可以用Shell来启动、挂起、停止以及编写一些程序。

语法

1.格式
脚本以 #!/bin/bash开头
脚本需要有可执行权限(chmod 744 filename)
注释 :<<!内容 !
2.Shell变量
Shell变量分为系统变量和用户自定义变量
系统变量:$HOME, $PWD, $SHELL, $USER等
变量定义
1)定义变量:变量 = 值
2)撤销变量:unset 变量
3)声明静态变量:readonly 变量

#!/bin/bash
A=100
echo "A=$A"
unset A
echo "A=$A"

变量名规则
1)变量名可以有字母、数字、下划线组成,但不能以数字开头
2)等号两侧不能有空格 即A=100而不是A = 100
3)变量名称一般为大写
命令的返回值赋值给命令
1)反引号
2)$()

#!/bin/bash
RESULT=`ls -l /home`
echo $RESULT
echo " "
MY_DATE=$(date)
echo "date=$MY_DATE"

3.查看环境变量

#!/bin/bash
echo "path=$PATH"

4.位置参数变量
用户获取命令行的参数消息
$n:n为0代表命令本身,其余n-1表示参数,n大于9时,用 ${n}表示
$*:代表命令行中的所参数,并把所有参数看出一个整体
$@:代表命令行中的所有参数,并把每个参数分区对待
$#:代表命令行中参数的个数

#!/bin/bash
echo "$0 $1 $2"
echo "$*"
echo "$@"
echo "param_num=$#"

5.预定义变量
指Shell设计者事先定义好的变量,可以直接在Shell脚本中使用
$$ :表示当前进程的进程号(PID)
$!:表示后台运行的最优一个进程的进程号
$?:表示最后一次执行命令的返回状态(0代表执行正确,非0代表执行错误,具体是几由命令本身决定)
6.运算符
1) $((运算式)) 或者 $[运算式]
2)expr m+n
3)expr * / % 分别代表乘 除 取余

#!/bin/bash
TEMP=`expr 2+3`
RESULT=`expr $TEMP \* 4`
echo "result=$RESULT"

求命令行的两个参数的和

#!/bin/bash
SUM=$[$1+$2]
echo "sum=$SUM"

7.条件判断
[ condition ] (注意condition前后要有空格)
非空返回true
常用判断条件
1)比较两个整数
= 字符串比较
-lt 小于
-le 小于等于
-eq 等于
-gt 大于
-ge 大于等于
-ne 不等于
2)按照文件权限进行判断
-r 可读
-w 可写
-x 可执行
3)按照文件类型判断
-f 文件存在并且是一个常规的文件
-e 文件存在
-d 文件存在并且是一个目录

#!/bin/bash
if [ -e /user/local ]
then
		echo "exist"
fi

8.IO流程控制
if判断

if [ condition ]
	then
	程序
fi

或者

if [ condition ]
	then
	程序
	elif [ condition ]
	then
	程序
fi

case语句

case $变量名 in
 "值 1“)
 	 	程序
 	 	;;
  "值 2“)
 	 	程序
 	 	;;
 ............
 		*)
 		程序
 		;;
 	esac

在这里插入图片描述
for循环

for 变量 in 值1 值2.....
do
 	程序
done

在这里插入图片描述

for (( 初始值;循环控制条件;))
	do
	程序
	done

在这里插入图片描述
while循环

while [ 条件判断式 ]
	do
	程序
	done

在这里插入图片描述
9.读取控制台的输入
read (选项)(参数)
-p 指定读取值时的提示符
-t 指定读取值时等待的时间(秒)如果超时则停止等待
在这里插入图片描述
10.函数
分为系统函数和自定义函数
系统函数举例
basename /home/test.txt 返回test.txt
basename /home/test.txt .txt 返回test
dirname /home/aaa/test.txt 返回/home/aaa
自定义函数

[ function ] funname[()}
{
	Action;
	[return int;]
}

调用 funname [值]

在这里插入图片描述

实例

《编写Shell脚本定时备份数据库》

猜你喜欢

转载自blog.csdn.net/IT_10/article/details/89741605
今日推荐