在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
本网站发布或转载的文章及图片均来自网络,其原创性以及文中表达的观点和判断不代表本网站。如有问题,请联系客服处理。
发表回复