shell脚本基本概念讲解

文章目录


你的点赞评论就是对博主最大的鼓励
当然喜欢的小伙伴可以:点赞+关注+评论+收藏(一键四连)哦~


🍊自我介绍

Hello,大家好,我是小珑也要变强(也是小珑),我是易编程·终身成长社群的一名**"创始团队·嘉宾"** 和**"内容共创官"** ,现在我来为大家介绍一下有关物联网-嵌入式方面的相关内容。


🍊脚本概述

什么是脚本?

脚本:使用同一特定的描述性语言,依据一定的格式编写的可执行文件。在windows中,大家可以常常见到。windows中的脚本以.bat结尾的。

什么是shell?

答:shell是一个命令行解释
什么是shell脚本?

答:shell脚本就是shell命令的有序集合。

shell脚本的运行方法

方法1:

powershell 复制代码
1、建立xx.sh文件
2、赋予我们shell文件执行权限   //chmod u+x xx.sh
3、执行shell文件

方法2:

powershell 复制代码
1、建立.sh文件
2、bash + xx.sh

代码示例:

test-1.sh

powershell 复制代码
cd /home/linux/Class
mkdir Student
touch log.txt
cp log.txt ./Student

🍊shell中的变量

简介:

1、我们shell变量不支持数据类型,它将任意赋值给变量的数据当作字符串识别。

2、我们定义变量的时候,不需要给钱( ) , 我们输出的时候需要给钱( ),我们输出的时候需要给钱( ),我们输出的时候需要给钱()。

3、给变量赋值的时候,等号两边不能有空格

示例代码:

test2.sh

powershell 复制代码
#! /bin/bash     //#!表示我们使用的解释器类型
DATA=1    //不能是DATA = 1,不能有空格
echo "DATA : $DATA"

变量分类
用户自定义变量

powershell 复制代码
特点:变量没有类型,不需要定义,直接使用,所有的内容被解释为字符串
说明:
1、shell中引用一个变量必须要加$
2、在shell中,对变量赋值的时候,"="两边不能有空格
3、单引号引用的数据会转换为字符串

示例:
str="hello world"

my_data=$str
echo "my_data = $my_data"

示例代码:

test3.sh

powershell 复制代码
str1="hello world"
str2="say : ${str1}"  //{}使用大括号里面是一个整体

echo $str2

cmd='ls'
echo $cmd

mystr1='say : ${str1}'
echo $mystr1

位置变量

powershell 复制代码
$0 :shell脚本的名字
$1-$9 : 第一个参数~第九个参数,空格作为分隔符

$#: 位置参数的个数[不包括shell脚本本身]

$*: 所有的位置参数
$@: 所有的位置参数

$?: 上一条命令的执行状态或获取shell函数的返回值
注意:0代表状态为真,非0代表状态为假
$$: 获得我们shell脚本的进程号  //ps -ef 可以查看所有进程号

示例代码:

test4.sh

powershell 复制代码
echo '$0' : $0

//下面的| |,仅仅作为区分,没有实际意义

echo '$1' : "|$1|"
echo '$2' : "|$2|"
echo '$3' : "|$3|"
echo '$4' : "|$4|"
echo '$5' : "|$5|"
echo '$6' : "|$6|"
echo '$7' : "|$7|"
echo '$8' : "|$8|"
echo '$9' : "|$9|"
echo '$10' : "|${10}|"  //注意:不能是echo '$10' : "|$10|"

echo '$*' : "|$*|"
echo '$@' : "|$@|"

echo '$#' : "|$#|"

echo '$?' : "|$?|"

echo '$$' : "|$$|"

read 类似于C语言中getcher(),读取用户输入的一个数据

输入命令:

powershell 复制代码
bash test4.sh 10 20 30 40 50 60 70 80 90 888

输出结果:

powershell 复制代码
$1 : |10|
$2 : |20|
$3 : |30|
$4 : |40|
$5 : |50|
$6 : |60|
$7 : |70|
$8 : |80|
$9 : |90|
$10 : |888| 

$* : 10 20 30 40 50 60 70 80 90 888
$@ : 10 20 30 40 50 60 70 80 90 888

$# : 10

$? : 0

$$ : 4143
相关推荐
全栈工程师修炼指南4 分钟前
Nginx | stream 四层反向代理:SSL、PREREAD 阶段模块指令浅析与实践
运维·网络·网络协议·nginx·ssl
旖旎夜光24 分钟前
Linux(13)(中)
linux·网络
威迪斯特1 小时前
CentOS图形化操作界面:理论解析与实践指南
linux·运维·centos·组件·图形化·桌面·xserver
一方热衷.1 小时前
在线安装对应版本NVIDIA驱动
linux·运维·服务器
独自归家的兔1 小时前
ubuntu系统安装dbswitch教程 - 备份本地数据到远程服务器
linux·运维·ubuntu
ONE_SIX_MIX1 小时前
ubuntu 24.04 用rdp连接,桌面黑屏问题,解决
linux·运维·ubuntu
龙飞051 小时前
Systemd -systemctl - journalctl 速查表:服务管理 + 日志排障
linux·运维·前端·chrome·systemctl·journalctl
*小海豚*1 小时前
在linux服务器上DNS正常,但是java应用调用第三方解析域名报错
java·linux·服务器
June`1 小时前
muduo项目排查错误+测试
linux·c++·github·muduo网络库
春日见1 小时前
如何创建一个PR
运维·开发语言·windows·git·docker·容器