假设我们声明
test="/this/isjust/atestvariable/for/stringoperation"
Run Code Online (Sandbox Code Playgroud)
我们想用冒号 ':' 替换 '/' 的每个实例。
然后,我认为这个命令应该有效:
echo ${test//\/:}
Run Code Online (Sandbox Code Playgroud)
(as${variable//pattern/string}
用指定的字符串替换模式的所有匹配项)
但是,在运行 echo 时${test//\/:}
,我得到的输出为
/this/isjust/atestvariable/for/stringoperation
Run Code Online (Sandbox Code Playgroud)
我可能哪里出错了?感谢您的帮助。
这个:
${test//\/:}
Run Code Online (Sandbox Code Playgroud)
将用空(没有第二个未转义的斜线)替换所有实例(因为//
在开始时/:
使用双斜线)。
这个:
${test/\//:}
Run Code Online (Sandbox Code Playgroud)
将(已转义)的第一个实例(因为单个斜杠作为分隔符)替换为./
:
和这个:
${test//\//:}
Run Code Online (Sandbox Code Playgroud)
应该/
用 a替换所有匹配项:
。
例子:
$ test="/this/isjust/atestvariable/:for/:stringoperation"
$ echo ${test//\/:}
/this/isjust/atestvariableforstringoperation
$ echo ${test/\//:}
:this/isjust/atestvariable/:for/:stringoperation
$ echo ${test//\//:}
:this:isjust:atestvariable::for::stringoperation
Run Code Online (Sandbox Code Playgroud)
归档时间: |
|
查看次数: |
2684 次 |
最近记录: |