在同一变量集合行中组合多个bash参数替换,而不使用任何其他命令
我想要组合的示例:在同一变量集合行中组合多个bash参数替换,而不使用任何其他命令,bash,variables,parameters,concatenation,substitution,Bash,Variables,Parameters,Concatenation,Substitution,我想要组合的示例: sVar=$(whoami) sVar=${sVar^} sVar=${sVar::1} 输出: 用户名的大写第一个字符 要求: 一班轮 除了$(whoami)以上的初始命令替换之外,其余的处理都使用参数替换 我意识到这可以通过tr、sed、awk、printf、cut等实现。;但这不是问题的重点 任何帮助都是感激的 这不是真正的代码,也不是我真正想做的事情。我通常默认(或尝试)只使用一个命令而不是连接多个命令 我看到其他帖子说在大括号内连接是不可能的,但我知道一切
sVar=$(whoami)
sVar=${sVar^}
sVar=${sVar::1}
输出:
- 用户名的大写第一个字符
- 一班轮
- 除了$(whoami)以上的初始命令替换之外,其余的处理都使用参数替换
- 引用其他文章作为重复,说这是不可能的
sVar=$(whoami) sVar=${sVar^} sVar=${sVar::1}
它可能不是您想要的,但它肯定是一个命令,并使用参数替换。一个命令可以由多个变量赋值组成,在这种情况下,它们从左到右执行
参数替换的主题是变量名、间接寻址(a!后跟变量名)或下标表达式(变量名—不是间接寻址—后跟[and]中的下标)。当然,这有点有限,但这是bash。(Posix外壳的限制性更强;它没有间接寻址和数组,扩展类型更少。)
XCU的Posix措辞,重点补充: 当需要执行给定的简单命令时……应从命令文本的开头到结尾执行以下扩展、分配和重定向:
好吧,不可能在一个命令中进行多个参数替换。为什么您有这样的要求?如果您在同一行上执行多个由
;
分隔的命令,它算一行吗?sVar=$(whoami);sVar=${sVar^};sVar=${sVar::1}
如果你要发布这样的内容,它应该得到赏金。即使有可能,也不应该这样做,因此这是一个学术测试。@cyrus:你可以省去分号。一个命令可以包含多个变量赋值,它们是从左到右(“从命令文本的开头到结尾”)执行的,正如Posix所说。)