Shell脚本编程史上最全手册
Posted 我想月薪过万
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Shell脚本编程史上最全手册相关的知识,希望对你有一定的参考价值。
Shell脚本简介
shell命令按一定语法组成的文件。
Shell脚本有什么用?
批处理文件 / 整合命令
- 软件启动
- 性能监控
- 日志分析
- ...
Shell命令的本质
内置命令 / 外部命令
Shell脚本语言和C语言一样吗?
- 编译型语言
- 解释型语言
常用的Shell解释器有哪些?
cat /etc/shells
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# cat /etc/shells
/bin/sh //对应的解释器
/bin/bash
/usr/bin/sh
/usr/bin/bash
第一个Shell脚本
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# vim hello.sh //创建一个shell脚本文件
#!/bin/bash //指定 shell 脚本解释器
echo "hello world!" //输出 hello world!
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# ./hello.sh
-bash: ./hello.sh: Permission denied //表示需要修改shell脚本可自行权限
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# chmod 777 hello.sh
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# ll
total 28
-rwxrwxrwx 1 yiqi yiqi 13 Dec 6 16:14 123.txt
-rw-r--r-- 1 root root 1 Dec 6 17:11 222.txt
-rwxrwxrwx 1 root root 35 Dec 22 12:16 hello.sh
drwxr-xr-x 4 root root 4096 Dec 1 09:52 learn
drwxr-xr-x 6 root root 4096 Jul 26 19:38 serverProject
drwxr-xr-x 2 root root 4096 Nov 8 11:54 softWare
drwxr-xr-x 4 root root 4096 Mar 7 2021 tools
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# ./hello.sh
hello world!
Shell启动方式
- 当程序执行
- 指定解释器运行
- source和.
当程序执行 ./hello.sh
指定解释器运行 /bin/bash hello.sh
source和. source hello.sh / . hello.sh
Shell脚本语法讲解
定义变量
- value=v
- value='v'
- value="v"
单引号 和 双引号主要作用是在当字符串中存在空格符时使用
区别在于 单引号括起来的是所见即所得,双引号是所见可以转换
示例
#!/bin/bash
var1=hello #复制语句 = 左右两边 不能出现空格
echo $var1 # hello
var2='hellow world'
echo $var2 # hellow world
var3="hello shell"
echo $var3 # hello shell
var4='$var1var4'
echo $var4 # $var1var4
var5="$var1var5"
echo $var5 # hellovar5
使用变量
- $value
- $value
两者的区别:{}使用的主要目的是变量界限的确定。
var6="shell"
echo "$var6bb" #空白 因为变量名界限不明确,不知道你变量名是var6还是var6bb
echo "$var6bb" #shellbb
将命令的结果赋值给变量
- value=`command`
- value=$(command)
var7=`pwd`
echo $var7
var8=$(pwd)
echo $var8
删除变量
- unset
特殊变量
字符串拼接
- 并排放
echo $var7aa
读取从键盘输入的数据
- read
#!/bin/bash
read -p "input a:" a # -p 表示输出提示信息
echo $a
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# /bin/bash test.sh
input a:12
12
退出当前进程
- exit
对整数进行数学运算
- (())
#!/bin/bash
read -p "input a:" a
read -p "input b:" b
var=$((a+b))
echo $var
运行结果
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# /bin/bash test.sh
input a:10
input b:20
30
逻辑与 / 或
- &&
- ||
检测某个条件是否成立
test expression 和 [ expression ],中括号和字符之间要用空格隔开
管道
command1 | command2
[root@iZuf6a7sd2zy3fpen7rmbhZ ~]# ls | grep "123"
123.txt
if 语句
if condition
then
statement1
fi
if else 语句
if elif else 语句
case in 语句
for in 循环语句
while 循环
函数
以上是关于Shell脚本编程史上最全手册的主要内容,如果未能解决你的问题,请参考以下文章