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
相关推荐
IT成长日记1 小时前
【Docker基础】Docker数据持久化与卷(Volume)介绍
运维·docker·容器·数据持久化·volume·
物联网老王3 小时前
Ubuntu Linux Cursor 安装与使用一
linux·运维·ubuntu
艾伦_耶格宇5 小时前
【ACP】阿里云云计算高级运维工程师--ACP
运维·阿里云·云计算
一位摩羯座DBA6 小时前
Redhat&Centos挂载镜像
linux·运维·centos
学习3人组6 小时前
CentOS配置网络
linux·网络·centos
weixin_307779136 小时前
Hive集群之间迁移的Linux Shell脚本
大数据·linux·hive·bash·迁移学习
漫步企鹅7 小时前
【蓝牙】Linux Qt4查看已经配对的蓝牙信息
linux·qt·蓝牙·配对
cui_win7 小时前
【网络】Linux 内核优化实战 - net.core.flow_limit_table_len
linux·运维·网络
梦在深巷、7 小时前
MySQL/MariaDB数据库主从复制之基于二进制日志的方式
linux·数据库·mysql·mariadb
风清再凯7 小时前
自动化工具ansible,以及playbook剧本
运维·自动化·ansible