首页
学习
活动
专区
工具
TVP
发布
精选内容/技术社群/优惠产品,尽在小程序
立即前往

LinuxShell编程(2)

小姐姐照片一张 UNIX系统中,Shell拥有一个强大特性:文件名替换。...$ Shell会自动将模式 *替换成当前目录下能够匹配到所有文件名。如果你在其他命令中使用 *,相同替换过程一样会发生。那么echo命令呢?...$ chap *能够匹配以chap开头所有文件。指定命令被调用之前,这些文件名替换就已经完成了。...第二个echo中,首个*能够匹配t字符之前任意多个字符,另一个*匹配t之后任意多个字符,因此,只要包含t文件名,就会被打印出来。...指定字符范围时候,唯一限制就是第一个字符字母表上必须位于最后一个字符之前,因此[z-f]并不是一个有效字符范围,而[f-z]就没有问题。

78010
您找到你想要的搜索结果了吗?
是的
没有找到

shell中各种括号作用(中)

第二种:对大括号中以点点(..)分割顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt #ls {ex1,ex2}.sh ex1.sh...${var%pattern},${var%%pattern},${var#pattern},${var##pattern} 第一种模式:${variable%pattern},这种模式时,shellvariable...中查找,看它是否一给模式pattern结尾,如果是,就从命令行把variable中内容去掉右边最短匹配模式 第二种模式: ${variable%%pattern},这种模式时,shellvariable...中查找,看它是否一给模式pattern结尾,如果是,就从命令行把variable中内容去掉右边最长匹配模式 第三种模式:${variable#pattern} 这种模式时,shellvariable...中查找,看它是否一给模式pattern开始,如果是,就从命令行把variable中内容去掉左边最短匹配模式 第四种模式: ${variable##pattern} 这种模式时,shellvariable

1.8K20

shell中各种括号作用(上)

括号中命令将会新开一个子shell顺序执行,所以括号中变量不能够被脚本余下部分使用。括号中多个命令之间用分号隔开,最后一个命令可以没有分号,各命令和括号之间不必有空格。 2.命令替换。...等同于cmd,shell扫描一遍命令行,发现了$(cmd)结构,便将$(cmd)中cmd执行一次,得到其标准输出,再将此输出放到原来命令。有些shell不支持,如tcsh。 3.用于初始化数组。...((exp))结构扩展并计算一个算术表达式值,如果表达式结果为0,那么返回退出状态码为1,或者 是”假”,而一个非零值表达式所返回退出状态码将为0,或者是”true”。...4.一个array 结构上下文中,中括号用来引用数组中每个元素编号。 双中括号[[ ]] 1.[[是 bash 程序语言关键字。并不是一个命令,[[ ]] 结构比[ ]结构更加通用。...[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。 2.支持字符串模式匹配,使用=~操作符时甚至支持shell正则表达式。

88820

Linux Shell(二)——Shell环境配置

1 命令别名 1.1 设置命令别名 将rm设为rm -i,这样只要输入rm就能拥有rm -i功能,删除时候就会有提示: alias rm='rm -i' 1.2 取消命令别名 unalias...4.1 设置动态信息 动态信息/etc/issue中设置,它语法和设置命令提示符PS1有写类似,不同特殊字符代表不同动态信息。...通过命令设置所有变量、别名只有本次登录期间内有效,一旦注销,这些信息也随之消失。...5.2 login shell与non-login shell区别? login shell和non-login shell是两种shell登录方式,它们登录后加载环境配置文件有所不同。...5.2.1 login shell 获取bash前需要进行一套完整登录过程,这个登录过程就称为login shell。所谓“完整登录过程”指需要输入用户名和密码。

12.1K50

shell中各种括号作用()、(())、]、{}「建议收藏」

[[和]]之间所有的字符都不会发生文件名扩展或者单词分割,但是会发生参数扩展和命令替换。 ②支持字符串模式匹配,使用=~操作符时甚至支持shell正则表达式。...第二种:对大括号中以点点(..)分割顺序文件列表起拓展作用,如:touch {a..d}.txt 结果为a.txt b.txt c.txt d.txt # ls {ex1,ex2}.sh...},这种模式时,shellvariable中查找,看它是否一给模式pattern结尾,如果是,就从命令行把variable中内容去掉右边最长匹配模式 第三种模式:{variable...#pattern} 这种模式时,shellvariable中查找,看它是否一给模式pattern开始,如果是,就从命令行把variable中内容去掉左边最短匹配模式 第四种模式...: {variable##pattern} 这种模式时,shellvariable中查找,看它是否一给模式pattern结尾,如果是,就从命令行把variable中内容去掉右边最长匹配模式

3.9K40

——探讨Shell中变量作用范围(export)

————前言———— Shell编程中,理解变量作用范围是编写高效脚本关键一步。变量作用范围决定了它们脚本中可访问性和生命周期,正确地管理变量作用范围能有效避免命名冲突和意外修改。...本篇指南中,我们将深入探讨Shell变量本地和全局作用范围,解释如何在函数和脚本之间传递变量,并提供最佳实践以确保脚本健壮性和可维护性。...https://www.captainbed.cn/sis/ 不同Shell环境中变量作用范围 Linux中,变量作用范围(Scope)和生命周期取决于它们定义方式和Shell环境。...当我们退出新Shell环境,回到原来Shell时,这些变量依然存在,并且可以正常访问和输出它们值。这说明原来Shell环境和新Shell环境是独立,变量各自环境中作用范围不交叉。...,变量作用范围(Scope)决定了变量代码中可见性和生命周期。

12310

Linux——shell

什么是shellshell是系统用户界面,提供了用户与内核进行交互操作一种接口(命令解释器) 。它接收用户输入命令并把它送入内核去执行。起着用户与系统之间进行交互作用。 ?...shell功能: 命令行解释 命令多种执行顺序 通配符 命令补全、别名机制、命令历史 I/O重定向 管道 命令替换(` ` 或$( ) ) shell编程语言 shell可以执行——内部命令、外部命令...shell命令分为: 内部(内置)命令 内部命令是shell本身包含一些命令,这些内部命令代码是整个shell代码一个组成部分; 内部命令执行是shell通过执行自己代码中相应部分来完成...外部(外置)命令 外部命令代码则存放在一些二进制可执行文件或者shell脚本中; 外部命令执行时,shell会在文件系统中指定一些目录去搜索相应文件,然后调入内存执行。...也可以通过ls命令查看这些shell详细信息 #ls –al /bin/sh lrwxrwxrwx 1 root root  4 10月 8  2017  /bin/sh->bash Shell搜索目录名字都保存在一个

10.7K30

shell脚本】$ shell脚本中使用

shell脚本中 '$' 与不同符号搭配其表示意义也会不同 特殊标志符 含义 $0 当前脚本文件名 $n 传递给脚本或函数参数。n 是一个数字,表示第几个参数。...例如,第一个参数是$1,第二个参数是$2 $# 传递给脚本或函数参数个数 $* 传递给脚本或函数所有参数 $@ 传递给脚本或函数所有参数 $?...上个命令退出状态 $$ 当前Shell进程ID $() 与 `(反引号) 一样用来命令替换使用 ${} 引用变量划分出边界 注释:$* 和 $@ 都表示传递给函数或脚本所有参数,不被双引号(" "...)包含时,都以"$1" "$2" … "$n" 形式输出所有参数。...但是当它们被双引号(" ")包含时,"$*" 会将所有的参数作为一个整体,以"$1 $2 … $n"形式输出所有参数;"$@" 会将各个参数分开,以"$1" "$2" … "$n" 形式输出所有参数

6.1K20

Shell-aliasShell脚本中使用

概述 shell中开启alias 实际操作 概述 众所周知,shell脚本使用是非交互式方式,非交互式模式下alias扩展功能默认是关闭,此时虽然可以定义alias别名,但是shell不会将alias...别名扩展成对应命令,而是将alias别名本身当作命令执行,如果shell内置命令和PATH中均没有与alias别名同名命令,则shell会找不到指定命令。...---- shell中开启alias 使用shell内置命令shopt命令来开启alias扩展选项。...shopt是shell内置命令,可以控制shell功能选项开启和关闭,从而控制shell行为 常用命令: Command Desc shopt -s opt_name Enable (set) opt_name...默认是打开非交互式模式下是关闭,但可以用可shopt来将其开启 shopt -s expand_aliases ---- 实际操作 我们项目中某个模块双机启动脚本(root用户下操作),

2.2K10

LinuxBash Shell详解

一、Bash Shell概述   1.什么是bash           bash是Bourne Again Shell简称,是从unix系统中sh发展而来,是用户和Linux内核交互工具,用户通过...3.bash历史和发展 ? 二、Bash Shell变量概述   1.变量是代表一些值符号。   2.可以通过变量来设置shell或者其他程序。   3.变量存在于内存中。   ...4.Linux有自定义变量(local)和环境变量(environment)。   5.自定义变量和环境变量作用范围不同。   ...shell   3.建立环境变量,设置其他程序   4.使用alias,简化后续操作   5.登录登出时候执行哪些程序 五、login和non-login shell详解   1.login shell...            读取/etc/profile.d/*.sh             ~/.bash_logout:                 注销用户时会进行该脚本

3.2K40

Linux超级漂亮Shell

先来一张美图 image-20220303215422650 1 zsh 介绍 1.1 Linux shell Linux/Unix 提供了很多种 Shell,为毛要这么多 Shell?.../shells 显示如下: 1.2 zsh 简介 Zsh 是一个 Linux 下强大 shell, 由于大多数 Linux 产品安装,以及默认使用bash shell, 但是丝毫不影响极客们对 zsh...在用户启动所有 shell 中共享命令历史 通过扩展文件通配符,可以不利用外部命令达到 find 命令一般展开文件名 改进变量与数组处理 缓冲区中编辑多行命令 多种兼容模式,例如使用 / bin.../sh 运行时可以伪装成 Bourne shell 可以定制呈现形式提示符;包括屏幕右端显示信息,并在键入长命令时自动隐藏 可加载模块,提供其他各种支持:完整 TCP 与 Unix 域套接字控制... Github 上找关于 zsh 项目时发现,试用了一下觉得很方便,不用像上面文章里面提到那么复杂,配置一些插件名称即可使用相应功能。

3.3K20

Linuxshell之二

01 — 通配符 Shell 中除使用普通字符外,还可以使用一些具有特殊含义和功能字符,称为通配符,使用它们时应注意其特殊含义和作用范围。...在任何可编程环境中,命令返回成功或失败指示;Linux 命令通常返回一个零值表示成功,并返回一个非零值表示失败。可以使用 && 和 || 控制操作符来将某些条件处理引入到列表中。...USER 已登录用户名称 UID 用数字表示已登录用户用户 id HOME 用户主目录 PWD 当前工作目录 SHELL shell 名称 PATH 运行命令查找路径,以冒号:分割不同路径...单引号告诉 Shell 忽略所有的特殊字符,而双引号只要求忽略大多数字符。具体来说,括双引号中三种特殊字符不被忽略:$,\ 和 ` ,即双引号会解释字符串特别意义,而单引号则直接使用字符串。...反引号括起来字串被 Shell 解释为命令行,执行时,Shell 首先执行该命令行,并以它标准输出结果取代整个反引号(包括两个反引号)部分。

74510
领券