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
相关推荐
AI视觉网奇7 分钟前
pytorch3d linux安装
linux·人工智能·pytorch
VVVVWeiYee9 分钟前
Mesh路由组网
运维·网络·智能路由器·信息与通信
双手插兜-装高手17 分钟前
Linux - 线程基础
linux·c语言·笔记
XY.散人33 分钟前
初识Linux · 信号处理
linux·信号处理
北'辰34 分钟前
使用ENSP实现DHCP+动态路由
运维·网络
XiaoCCCcCCccCcccC1 小时前
Linux环境下的基础开发工具 -- 包管理器,vim,gcc/g++,make/makefile,git,gdb/cgdb
linux·c语言·gdb
雪碧聊技术1 小时前
Docker3:docker基础1
运维·docker·容器·docker常见命令
懒笑翻1 小时前
Python 使用 Selenuim进行自动化点击入门,谷歌驱动,以百度为例
运维·selenium·自动化
n***85941 小时前
Github 开源 10K Stars 自动化 API、后台作业、工作流和 UI 的开发平台
运维·自动化
夜色呦1 小时前
中小企业人事管理自动化:SpringBoot实践
运维·spring boot·自动化