bash - 可以对 Bash shell 变量执行的操作

标签 bash shell

我知道我们可以对 shell 中的变量执行一些操作,例如:

1) "#"& "##"操作

使用${var#pattern},我们删除了${var} 头部的“pattern”。可以在模式中使用“*”来匹配所有内容。而“#”和“##”的区别在于,“##”会去掉最长的匹配子串,而“#”会去掉最短的匹配子串。例如,

var=brbread
${var##*br} // ead
${var#*br} // bread

2) "%"& "%%"操作

在 ${var%pattern} 中,我们删除了 ${var} 末尾的“pattern”。当然,“%%”表示最长匹配,“%”表示最短匹配。例如,

var=eadbreadbread
${var%%*br} // eadbreadbread
${var%%br*} // ead
${var%br*} // eadbread

3)“/”操作

对于${var/haha/heihei},我们将$var中的“haha”替换为“heihei”。例如,

var=ihahai
${var/haha/heihei/} / iheiheii

我只是好奇我们是否可以对上述以外的变量进行更多操作?

谢谢。

最佳答案

是的,bash 对变量还有很多其他操作,如大小写修改、数组键列表、名称扩展等。

您应该查看 Parameter Expansion 处的手册页章。

关于bash - 可以对 Bash shell 变量执行的操作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2244644/

相关文章:

bash - 在 Bash 中测试是否声明了关联数组

java - 从 shell 脚本生成的 Java InputStream 中读取是批量进行的

bash - 在 while 循环中调用 Bash 函数

macos - 如何在一个语句中为一个命令定义两个别名

linux - 在 OSX 下设置特定命令的路径

shell - Hashbang 不支持带参数的参数

bash - 非 bash 相当于 "trap ERR"

linux - 保持主目录与 Linux Box 同步

bash - 重定向和进程替换的顺序

java - 将参数从 shell 脚本传递到 java 类