Shell基础一

本文介绍Linux Shell的基础知识,包括Shell的种类、如何运行Shell脚本、Shell变量与数组的使用等核心概念。

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

一、认识Shell

1.Shell简介

Shell 是一个用C语言编写的程序,它是用户使用Linux的桥梁。Shell既是一种命令语言,又是一种程序设计语言。

2.LinuxShell种类

(1)Bourne Shell(/usr/bin/sh或/bin/sh)

(2)Bourne AgainShell(/bin/bash)

(3)C Shell(/usr/bin/csh)

(4)K Shell(/usr/bin/ksh)

(5)Shell for Root(/sbin/sh)

Bash也是大多数Linux系统默认的Shell。

3.关于每个Shell开头的#!/bin/bash说明

#!告诉系统其后路径所指定的程序即是解释此脚本文件的Shell程序。

4.运行Shell脚本的两种方法

(1)把Shell做为一个可执行的程序

         chmod +x file

         ./file

 (2)作为解释器参数

         /bin/sh file

         /bin/php file

5.Shell注释

以“#”开头的行就是注释,会被解释器忽略。

 

二、Shell变量

1.变量命名规则

(1)首个字符必须为字母

(2)中间不能有空格,但是可以使用下划线

(3)不能使用标点符号

(4)不能使用bash里面的关键字

2.变量命名的两种方式

(1)显示命名  your_host="www.hello.com"

(2)非显式命名 for file in`ls /bin`

3.变量的使用

在变量名前面加美元符号--$your_host

 注:有时候为了确定解释器识别的变量边界,需要给变量加花括号--${your_host}

只有在使用变量的时候才加$。

4.只读变量

使用readonly命令可以将变量定义为只读变量,只读变量的值不能被改变。

  readonly your_host

5.删除变量

使用unset命令删除变量

unsetyour_host

6.变量类型

(1)局部变量:局部变量在脚本或命令中定义,仅在当前shell实例中有效,其他shell启动的程序不能访问局部变量。

(2)环境变量:所有的程序,包括shell启动的程序,都能访问环境变量,有些程序需要环境变量来保证其正常运行。必要的时候shell脚本也可以定义环境变量。

(3)shell变量:shell变量是由shell程序设置的特殊变量。shell变量中有一部分是环境变量,有一部分是局部变量,这些变量保证了shell的正常运行。

7.Shell字符串中‘单引号’和“双引号”区别

(1)单引号中的字符会原样输出,单引号字符串中的变量无法使用;(注:单引号不能出现单引号)

(2)双引号里可以有变量,双引号里可以出现转义字符。

8.拼接字符串

your_host_new="hello,"$your_host" !"

9.获取字符串长度

your_host="www.hello.com"

echo${#your_host}     #输出 13

10.提取子字符串

 your_host="www.hello.com"

 echo ${your_host:1:4}  #输出ww.h       

11.查找子字符串

 your_host="www.hello.com"

echo `exprindex "$your_host" he`     #输出4

三、Shell数组

1.定义数组

数组用括号表示,数组元素用“空格”符号分割开。定义数组的一般形式:

数组名=(值1  值2  ... )

2.数组三种赋值规格

(1)my_array=(value0 value1 value2)

(2)my_array=(

           value0

           value1

           value2        

     )

(3)my_array[0]=value0

my_array[1]=value1

     my_array[2]=value2

3.数组的读取

${数组名[下标]};利用@可以获取数组中的所有元素${数组名[@]}。


资源下载链接为: https://pan.quark.cn/s/1bfadf00ae14 华为移动服务(Huawei Mobile Services,简称 HMS)是个全面开放的移动服务生态系统,为企业和开发者提供了丰富的工具和 API,助力他们构建、运营和推广应用。其中,HMS Scankit 是华为推出的款扫描服务 SDK,支持快速集成到安卓应用中,能够提供高效且稳定的二维码和条形码扫描功能,适用于商品扫码、支付验证、信息获取等多种场景。 集成 HMS Scankit SDK 主要包括以下步骤:首先,在项目的 build.gradle 文件中添加 HMS Core 库和 Scankit 依赖;其次,在 AndroidManifest.xml 文件中添加相机访问和互联网访问权限;然后,在应用程序的 onCreate 方法中调用 HmsClient 进行初始化;接着,可以选择自定义扫描界面或使用 Scankit 提供的默认扫描界面;最后,实现 ScanCallback 接口以处理扫描成功和失败的回调。 HMS Scankit 内部集成了开源的 Zxing(Zebra Crossing)库,这是个功能强大的条码和二维码处理库,提供了解码、生成、解析等多种功能,既可以单独使用,也可以与其他扫描框架结合使用。在 HMS Scankit 中,Zxing 经过优化,以更好地适应华为设备,从而提升扫描性能。 通常,ScanKitDemoGuide 包含了集成 HMS Scankit 的示例代码,涵盖扫描界面的布局、扫描操作的启动和停止以及扫描结果的处理等内容。开发者可以参考这些代码,快速掌握在自己的应用中实现扫码功能的方法。例如,启动扫描的方法如下: 处理扫描结果的回调如下: HMS Scankit 支持所有安卓手机,但在华为设备上能够提供最佳性能和体验,因为它针对华为硬件进行了
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值