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脚本编程史上最全手册的主要内容,如果未能解决你的问题,请参考以下文章

史上最全高效编写Linux Shell脚本小技巧

史上最全面的纯手工打造 Vim 神器操作手册

Python二级考试试题汇总(史上最全)

收藏史上最全的浏览器 CSS & JS Hack 手册

史上最全Python从入门到资深书籍资料分享!

史上最全编程语言列表_你掌握了哪些?