Shell脚本编程史上最全手册

Shell脚本编程史上最全手册,第1张

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='${var1}var4'
echo $var4 # ${var1}var4

var5="${var1}var5"
echo $var5 # hellovar5
使用变量
  • $value
  • ${value}

两者的区别:{}使用的主要目的是变量界限的确定。

var6="shell"

echo "$var6bb" #空白 因为变量名界限不明确,不知道你变量名是var6还是var6bb

echo "${var6}bb" #shellbb
将命令的结果赋值给变量
  • value=`command`
  • value=$(command)
var7=`pwd`
echo $var7 

var8=$(pwd)
echo $var8
删除变量
  • unset
特殊变量

字符串拼接 
  • 并排放
echo ${var7}aa
读取从键盘输入的数据
  • 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 循环

函数

欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5695139.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-17
下一篇 2022-12-17

发表评论

登录后才能评论

评论列表(0条)

保存