shell编程---Linux基础命令篇(二)

本文详细介绍了Shell编程,包括shell命令解释器的作用、如何编写和执行shell脚本、shell变量的使用(系统变量、用户自定义变量)、运算式、条件判断、读取控制台输入的方法以及函数的创建和应用。通过实例解析了条件判断的语法,强调了在编写shell脚本时需要注意的空格问题。
摘要由CSDN通过智能技术生成

shell编程

1.shell命令解释器

Shell是一个命令解释器,它的作用是解释执行用户输入的命令及程序等。 用户每输入一条命令,Shell就执行一条。这种从键盘输入命令,就可以立即得到回应的对话方式,称为交互的方式当命令或程序语句不在命令行下执行,而是通过一个程序文件来执行时,该程序文件就被称为Shell脚本。 在Shell脚本里内置了很多命令、语句及循环控制,然后将这些命令一次性执行完毕,这种通过文件执行脚本的方式称为非交互的方式。 Shell脚本语言很适合用于处理纯文本型的数据,而Linux系统中几乎所有的配置文件、日志文件,以及绝大对数的启动文件都是纯文本类型的文件, 用户可以用shell帮助操作管理Linux内核

2.体验:
[root@localhost shell]# vi shell.sh
[root@localhost shell]# chmod 744 shell.sh 
[root@localhost shell]# ll
总用量 4
-rwxr--r--. 1 root root 33 4月   8 18:57 shell.sh
[root@localhost shell]# ./shell.sh 
hello,world
[root@localhost shell]# 

shell.sh文件内容:
#!/bin/bash
echo "hello,world"

我们编写.sh的shell文件,然后进行赋予执行权限,执行

或者不用给可执行权限执行

sh shell.sh
3.shell变量

系统变量

#!/bin/bash
echo "hello,world"

echo "PATH=$PATH"     

执行

[root@localhost shell]# ./shell.sh 
hello,world
PATH=/opt/jdk1.7.0_79/bin:/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/root/bin

用户自定义变量

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

[root@localhost shell]# vi shell.sh 
[root@localhost shell]# ./shell.sh 
A=100
A=
[root@localhost shell]# 

unset销毁变量

$引用这个变量的值

静态变量 不能unset

[root@localhost shell]# cat shell.sh
#!/bin/bash
readonly y=88
echo "y=$y"

结果

[root@localhost shell]# ./shell.sh 
y=88
[root@localhost shell]# 

变量定义 和 变量结果的获取

=两侧不能有空格

变量不以数字开头

取值用$

#!/bin/bash
MY_DATE=$(date)
echo "MY_DATE=$MY_DATE"

测试:

[root@localhost shell]# vi shell.sh 
[root@localhost shell]# ./shell.sh 
MY_DATE=2021年 04月 08日 星期四 19:21:57 CST
[root@localhost shell]# 

环境变量

1.定义后要export导出为环境变量

2.定义完后要刷新所在的资源文件 source /路径+文件名

在profile文件中定义

TOMCAT_HOME=/opt/etc/tomcat
export TOMCAT_HOME

查询

[root@localhost etc]# vi profile
[root@localhost etc]# source /etc/profile
[root@localhost etc]# echo $TOMCAT_HOME
/opt/etc/tomcat
[root@localhost etc]# 

参数处理

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

[root@localhost shell]# ./shell.sh 23 23 45
./shell.sh 23 23
23 23 45
23 23 45
[root@localhost shell]# 

预定义变量 事先定义好的变量

$$  当前进程号
$!  后台运行的最后一个进程号
$?  最后一次执行命令的返回状态  不是0就代表成功

./shell2.sh & 以后台方式执行脚本

[root@localhost shell]# cat shell.sh 
#!/bin/bash
echo "当前的进程号=$$"
./shell2.sh 
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值