Pur*_*ret 3 shell-script command-substitution variable-substitution
我对Parameter Substitution有一个大致的了解,包括像这样的子字符串
foo="Hello World";
greeting=${foo:0:6}
Run Code Online (Sandbox Code Playgroud)
但是我用命令来做到这一点吗?
greeting="Hello"
md5greeting=$(echo $greeting | md5sum :0:6)
>>b1946a
Run Code Online (Sandbox Code Playgroud)
其中输出是“hello”的 md5sum 的前 6 个字符。
我如何实现这一目标?
参数替换不能那样工作,至少在 bash 中不能。您需要一个真正的变量(参数)并直接对其进行操作。所以例如像这样:
var=$(echo abcdefgh | cmd1 | cmd2 | ... )
var2="${var:2:4}"
Run Code Online (Sandbox Code Playgroud)
例外是zsh
您可以将命令替换转换为“即时”参数并在一行中执行上述操作:
var2=${"$(echo abcdefgh | cdm1 | cmd2 | ... )":2:4}
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
332 次 |
最近记录: |