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
相关推荐
真真-真真10 分钟前
WebXR
linux·运维·服务器
轩辰~32 分钟前
网络协议入门
linux·服务器·开发语言·网络·arm开发·c++·网络协议
wanhengidc1 小时前
短视频运营行业该如何选择服务器?
运维·服务器
雨中rain1 小时前
Linux -- 从抢票逻辑理解线程互斥
linux·运维·c++
-KamMinG2 小时前
Centos7.9安装openldap+phpldapadmin+grafana配置LDAP登录最详细步骤 亲测100%能行
运维·grafana
Bessssss2 小时前
centos日志管理,xiao整理
linux·运维·centos
s_yellowfish2 小时前
Linux服务器pm2 运行chatgpt-on-wechat,搭建微信群ai机器人
linux·服务器·chatgpt
豆是浪个2 小时前
Linux(Centos 7.6)yum源配置
linux·运维·centos
vvw&2 小时前
如何在 Ubuntu 22.04 上安装 Ansible 教程
linux·运维·服务器·ubuntu·开源·ansible·devops
我一定会有钱2 小时前
【linux】NFS实验
linux·服务器