shell语言

本文详细介绍了Shell脚本的基础知识,包括脚本格式、变量定义与引用、系统预定义变量、命令行变量、特殊符号、重定向、字符操作以及分支和循环控制。讲解了如何使用双引号、单引号、反引号以及管道符号,并阐述了标准输入、输出和错误输出的重定向。此外,还提到了如何利用测试语句进行条件判断以及Here文档的使用。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

        Shell 脚本是不需要编译而可以直接执行的,这种脚本语言称为解释型语言

脚本格式:

#!/bin/bash    # 第一行必须这样写。告诉系统这个脚本文件用bash 工具来进行解析(指定命令解析器)

echo "Hello Even"   # 回显

变量:

      Shell 脚本的变量都是字符串,即一连串的单词列表。        

1、变量定义与赋值

        myname="Michael  Jackson"   # 赋值的内容如果是一个词组那么就必须使用双引号括起来。

        myName=Even_Lau     # 正确,只有一个单词时引号可以不写,赋值号的两边不能有空格!

        

2、变量引用

        echo  $myName   # 变量引用,变量前面加$符号即可      

3、变量的种类

        A 普通的用户自定义变量,比如上面的 myname。

        B 系统预定义好的环境变量,比如 PATH。

        C 命令行变量,如#、*、?(上一行命令的返回值) 、&(当前shell的进程号)等。例如:命令 ./example.sh  abcd  1234   (参数个数为2,和C不同)

image.png

特殊符号:

引号: 双引号" "     

单引号' '  (不做解析)       

反引号` `  (抑音符)

竖杠 |  (管道就像水管一样,将前面的命令的执行结果输送给后面的命令。)       

重定向< >

举例说明:

        1 time="today is `date`"   #在双引号内部使用反引号,则表示需要对反引号所括起来的内容进行解析

        2 echo $time                     # 输出则是 today is Tue Jun 15 10:10:16 CST 2021 

        3 echo ‘不管里面是什么直接显示,不做解析’

      

        重定向:命令的输出重定向到文件或者从文件中读取输入  (一个箭头表示新建,两个箭头表示追加)

        1、 标准输入  (stdin), 代码为0,    输入重定向使用  '<'或者 '<<'  

        2、 标准输出   (stdout),代码1表示,  输出重定向使用 '>'(等同于1>)  或者 '>>' 

        3、 标准错误输出 (stderr), 代码2 表示,重定向使用 '2>'   或者 '2>>' 

        既有正确输出又有错误输出时,要将所有输出都重定向到 date.log中:command 1>outputfile , 2>&1    ==   command &> outputfile

字符操作:

image.png

image.png

 

image.png image.png image.png

测试语句:(说明里写反了)

CjYTPWTJqmGAXsO0AAPvYeMlWrc853.png

        [  ] 可代替 单词 test ,方括号左右两边必须有空格,如下面示例:

image.png

  等价于 

image.png

语法单元:

        分支控制:

image.png

        case多路分支:

image.png

        循环控制:while 循环 、until 循环 、for 循环

其他指令:

使用 exit 命令可以在脚本执行完成或遇到某个条件时终止脚本的执行。例如:exit  #正常退出返回值0      exit 1 异常退出    

Here 文档的用法:EOF标记符用于表示 Here 文档的开始和结束位置

cat << EOF

这是一段多行文本。

它可以包含特殊字符、变量替换、命令替换等。

EOF

image.png

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值