jgs*_*key -5 variables parameters bash concatenation substitution
我想结合的例子:
sVar=$(whoami)
sVar=${sVar^}
sVar=${sVar::1}
Run Code Online (Sandbox Code Playgroud)
输出:
要求:
我意识到这可以用 tr、sed、awk、printf、cut 等来完成;但这不是问题的重点。
任何帮助表示赞赏!
这不是真正的代码或任何表明我真正想要做什么的东西。我经常默认(或尝试)只使用一个命令而不是连接多个命令。
我看到其他帖子指出在大括号内连接是不可能的,但我知道一切皆有可能。
请不要:
一个班轮:
sVar=$(whoami) sVar=${sVar^} sVar=${sVar::1}
Run Code Online (Sandbox Code Playgroud)
它可能不是您要查找的内容,但它肯定是单个命令并使用参数替换。单个命令可以包含多个变量赋值,在这种情况下,它们是从左到右执行的。
参数替换的主题是变量名、间接(a!后跟变量名)或下标表达式(变量名 - 不是间接 - 后跟[and内的下标]。这有点限制,以可以肯定,但那是 bash。(Posix shell 的限制性更强;它没有间接或数组,并且扩展类型更少。)
来自 XCU 的 Posix 措辞,强调补充:
当需要执行给定的简单命令时……从命令文本的开头到结尾都应执行以下扩展、赋值和重定向:
…
- 在赋值之前,每个变量赋值都应针对波浪号扩展、参数扩展、命令替换、算术扩展和引号删除进行扩展。