【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

这篇具有很好参考价值的文章主要介绍了【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

🎊专栏【玩转Linux操作】
🍔喜欢的诗句:更喜岷山千里雪 三军过后尽开颜。
🎆音乐分享【Counting Stars 】
欢迎并且感谢大家指出小吉的问题🥰

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

🍔概述

Shell 是一个用 C 语言编写的程序,它是用户使用 Linux 的桥梁。Shell 既是一种命令语言,又是一种程序设计语言。Shell 是指一种应用程序,这个应用程序提供了一个界面,用户通过这个界面访问操作系统内核的服务。
Shell脚本可以直接在命令行中执行,也可以将一套逻辑组织成一个文件,方便复用。

Linux中常见的shell脚本有很多种,常见的有:

  • Bourne Shell(/usr/bin/sh或/bin/sh)
  • Bourne Again Shell(/bin/bash)
  • C Shell(/usr/bin/csh)
  • K Shell(/usr/bin/ksh)
  • zsh

Linux系统中一般默认使用bash,所以接下来讲解bash中的语法。

⭐注意

文件开头需要写#! /bin/bash,指明bash为脚本解释器。

⭐示例

新建一个test.sh文件

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作
进入test.sh后,输入

#! /bin/bash
echo "hello"

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作
🏳️‍🌈使用ll命令查看权限,发现test.sh文件没有可写的权限
咱们来给它赋予权限

chmod +x test.sh

🏳️‍🌈然后运行

🏀当前路径下执行
./test.sh
🏀绝对路径下执行
/home/acs/test.sh
🏀家目录下执行
~/test.sh
🏀使用解释器执行
bash test.sh

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

🍔shell注释

⭐单行注释

每行中#后面的内容都是注释

# 这是一行注释

echo 'Hello World'  #  这也是注释

⭐多行注释

示例

:<<EOF
第一行注释
第二行注释
第三行注释
EOF

其中EOF可以换成其它任意字符串。例如:

:<<abc
第一行注释
第二行注释
第三行注释
abc

:<<!
第一行注释
第二行注释
第三行注释
!

🍔shell变量

⭐定义变量

定义变量,不需要添加$符号

定义变量时,等号两边不能有空格

name1='fufu'  # 单引号定义字符串
name2="fufu"  # 双引号定义字符串
name3=fufu    # 也可以不加引号,同样表示字符串

⭐使用变量

使用变量,需要加上$符号,或者${ }符号。花括号是可选的,主要为了帮助解释器识别变量边界。

name=fufu
echo $name  # 输出fufu
echo ${name}  # 输出fufu
echo ${name}rice  # 输出fufurice

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐只读变量

使用readonly或者declare可以将变量变为只读

name=fufu
readonly name
declare -r name  # 两种写法均可

name=abc  # 会报错,因为此时name只读

⭐删除变量

使用unset可以删除变量

name=fufu
unset name
echo $name  # 输出空行

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

被声明为只读的变量无法被unset删除

⭐自定义变量(局部变量)

子进程不能访问的变量

⭐环境变量(全局变量)

子进程可以访问的变量

🎈把自定义变量改为环境变量

name=fufu #定义变量
export name #第一种方法
declare -x name #第二种方法

🎈把环境变量改为自定义变量

export name=fufu #定义环境变量
declare +x name #改为自定义变量

🍔默认变量

在执行 shell 脚本时,可以向脚本传递参数。
$1 是第一个参数,$2 是第二个参数,以此类推。特殊的,$0 是文件名(包含路径)。例如:
$0是文件名(包含路径),其实就是我们输入的第一段,输入绝对路径就显示绝对路径,输入相对路径就显示相对路径

🍔字符串

字符串可以用单引号,也可以用双引号,也可以不用引号。

🎁单引号和双引号的区别

1.单引号中的内容会原样输出,不会执行,不会取变量
2.双引号中的内容可以执行,可以取变量

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作
【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐其他参数相关变量

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

name=fufu #不用引号
echo 'hello, $name \"hh\"'  # 单引号字符串,输出 hello, $name \"hh\"
echo "hello, $name \"hh\""  # 双引号字符串,输出 hello, fufu "hh"

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐获取字符串长度

name="fufu"
echo ${#name} #输出4

获取长度时,一定要带上#

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐提取字串

name="fufu"
echo ${name:0:2} # 提取从0开始的2个字符 (与python的切片不同)

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

🍔数组

数组下标从0开始

⭐定义

数组用小括号表示,元素之间用空格隔开

array=(1 abc "def" fufu)

也可以直接定义数组中某个元素的值

array[0]=1
array[1]=abc
array[2]="def"
array[3]=fufu

⭐读取数组中某个元素的值

🎈格式

${array[index]}

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐读取整个数组

🎈格式

${array[@]}  # 第一种写法
${array[*]}  # 第二种写法

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

⭐读取数组的长度

🎈格式

${#array[@]}  # 第一种写法
${#array[*]}  # 第二种写法

这个和上面一种的区别就是array前面有没有#

【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作

🥰如果大家有不明白的地方,或者文章有问题,欢迎大家在评论区讨论,指正🥰文章来源地址https://www.toymoban.com/news/detail-502005.html

到了这里,关于【玩转Linux操作】详细讲解shell的注释,变量,字符串,数组等操作的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • linux bash shell变量操作符 —— 筑梦之路

    ${var} 返回变量var的内容,单独使用时有没有{}一样,混合多个变量和常量时,用{}界定变量名 ${#var} 返回变量var内容的长度 ${var:offset} 从变量var中的偏移量offset开始截取到字符串结尾的子字符串,offset从0开始 ${var:offset:length} 从变量var中的偏移量offset开始截取长度为length的子字

    2024年02月04日
    浏览(30)
  • Linux:shell 中的单行注释和多行注释

    关于 shell 中的单行注释和多行注释 众所周知 ,使用#  比如想要注释 echo \\\"Hello World\\\" [root@test ~]# vim test.sh # echo \\\"Hello World\\\"         Shell 语言中是没有类似于 C/C++, Python 等计算机语言多行注释的功能的,可是对于脚本文件进行调试时,我们不可避免的需要对其中的代码进行注

    2024年02月15日
    浏览(32)
  • idea如何设置注释模板,图文超详细讲解

    目录 先打开idea设置 一,idea类注释 1,找到以下设置 2,设置模板 3,apply保存完成 二,idea方法注释 1,创建自定义的组 2,创建模板 3,设置模板 4,选择生成模板的文件 5,绑定选择参数 6,完成ok 类注释模板和接口注释模板 方法注释模板 生成模板 /** +模板名+快捷键, 选择

    2024年02月14日
    浏览(35)
  • 字符串拼接操作的面试题讲解

    常量与常量的拼接结果在常量池,原理是编译期优化。String  s1=\\\"a\\\"+\\\"b\\\"+\\\"c\\\"; 常量池中不会存在相同内容的常量。 只要其中有一个是变量 ,结果就在 堆 中。变量拼接的原理是StringBuilder。 如果拼接符号的前后出现了变量,则相当于在堆空间中new String(),具体的内容为拼接的

    2024年02月12日
    浏览(26)
  • 【Linux | Shell命令】Linux 环境变量

    Linux 系统中,很多程序和脚本通过环境变量来获取系统信息、存储临时数据和配置信息,了解去哪里设置相应的环境变量很重要。 本文总结了Linux 环境变量:它们存储在哪里、如何使用,以及如何创建自己的环境变量,最后会以数组变量的用法作结。 环境变量允许在内存中

    2024年02月12日
    浏览(45)
  • 【Linux】Linux环境变量的理解 --- 命令行参数、shell子进程、环境变量、本地变量…

    加油布鲁斯,你能行的! 1. 我们平常所用的Linux指令其实也是可执行程序,和我们自己写的二进制程序没什么两样,那么为什么在执行自己的程序的时候需要加上./,而执行这些系统提供的指令(可执行程序),不需要加上./呢? 2. 要执行一个程序或者指令,必须先找到这个

    2024年01月16日
    浏览(39)
  • 【Day28】力扣算法(超详细思路+注释) [1790. 仅执行一次字符串交换能否使两个字符串相等 ] [328. 奇偶链表 ][148. 排序链表]

    原题链接:1790. 仅执行一次字符串交换能否使两个字符串相等 题目描述 : 给你长度相等的两个字符串 s1 和 s2 。一次 字符串交换操作的步骤如下:选出某个字符串中的两个下标(不必不同),并交换这两个下标所对应的字符。 如果对 其中一个字符串 执行 最多一次字符串交

    2024年01月22日
    浏览(37)
  • 【Linux】shell编程(一) 变量

    目录 【Linux基础】shell编程(一) 变量 什么是shell编程 如何运行shell脚本 第一行 #!/bin/bash 第一行叫什么? WHAT IS THIS LINE CALLED? 为什么要加这个,有什么用? shell的变量 变量的赋值和使用 变量替换 位置变量 BASH引号规则 小结 简单的命令可以在命令行中直接输入,但是复杂的

    2024年02月08日
    浏览(25)
  • 使用PyTorch构建GAN生成对抗网络源码(详细步骤讲解+注释版)01 手写字体识别

    前面的博客讲了如何基于PyTorch使用神经网络识别手写数字 使用PyTorch构建神经网络 下面在此基础上构建一个生成对抗网络,生成对抗网络可以模拟出新的手写数字数据集。 生成对抗网络(GAN)是一种用于生成新的照片,文本或音频的模型。它由两部分组成:生成器和判别器

    2024年02月02日
    浏览(23)
  • 【Linux操作系统】Linux系统编程实现递归遍历目录,详细讲解opendir、readdir、closedir、snprintf、strcmp等函数的使用

    在Linux系统编程中,经常需要对目录进行遍历操作,以获取目录中的所有文件和子目录。递归遍历目录是一种常见的方法,可以通过使用C语言来实现。本篇博客将详细介绍如何使用C语言实现递归遍历目录的过程,并提供相应的代码示例,同时解释相关函数的使用。 1.1.1 函数

    2024年02月12日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包