Linux bash中的命令行展开介绍

在Linux系统中,bash是一个常用的命令行解释器,它提供了许多功能,包括命令行展开(也称为路径名展开或文件名展开),这是一项强大的功能,允许用户通过简短的表达式来指定多个文件或目录,以下是一些常用的命令行展开类型:

Linux bash中的命令行展开介绍
(图片来源网络,侵删)

1、通配符展开

星号(*):匹配任意数量的字符,包括零个字符。

问号(?):匹配任何单个字符。

中括号([]):匹配方括号内的任意一个字符或字符范围。

2、波浪线展开

~username:展开为用户名的家目录。

~+:展开为当前工作目录。

~:展开为前一个工作目录。

3、变量和参数展开

$variable:展开变量的值。

${variable}:同上,但可以用于需要明确变量边界的情况。

$#:展开为传递给脚本或函数的参数数量。

$@:展开为所有参数列表。

$*:展开为所有参数列表,但作为一个单一的字符串。

$1、$2、…:分别展开为第一个、第二个、…参数。

${#parameter}:展开为参数的长度。

4、大括号展开

{string1,string2,…}:展开为由逗号分隔的字符串序列。

{start..end}:展开为从start到end的数字序列。

{start..end..step}:展开为从start到end的数字序列,步长为step。

5、子壳层展开

$(command):展开为command的输出。

command:同上,使用反引号。

6、算术展开

$((expression)):展开为算术表达式的结果。

7、花括号展开

${parameter/pattern/string}:如果parameter的值匹配pattern,则将其替换为string。

${parameter#pattern}:如果parameter的值以pattern开头,则删除最短匹配的部分。

${parameter%pattern}:如果parameter的值以pattern结尾,则删除最短匹配的部分。

${parameter/#pattern/string}:如果parameter的值以pattern开头,则将其替换为string。

${parameter/%pattern/string}:如果parameter的值以pattern结尾,则将其替换为string。

8、序列表达式

{x..y[..incr]}:展开为从x到y的数字序列,可选地带有增量incr。

9、引用

‘text’:展开为字面字符串text。

"text":展开为text,其中变量和命令将被展开。

text:展开为文本text,其中所有特殊字符都被转义。

10、进程替换

<(command):展开为一个文件描述符,该文件描述符连接到一个管道,该管道从command读取。

>(command):展开为一个文件描述符,该文件描述符连接到一个管道,该管道向command写入。

这些展开类型提供了一种强大的方式来处理和操作文件名、变量、字符串和其他类型的数据,它们在编写shell脚本和自动化任务时非常有用。

原创文章,作者:未希,如若转载,请注明出处:https://www.kdun.com/ask/675409.html

(0)
未希的头像未希新媒体运营
上一篇 2024-06-06 16:25
下一篇 2024-06-06 16:29

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注

云产品限时秒杀。精选云产品高防服务器,20M大带宽限量抢购  >>点击进入